αααααΆααααΈαα½αααααΆαααααΆαα’αα·αααααα
ααααΆαα
- αα·ααααα
ααΆαααΆαααα ααΆαααααΌααααααααΆα (ααΆαααααΌααααααααΆα ) αααα’αα»ααααΆαα±ααα’αααααααΎαααααααααΎααααα»αααααΆααααααα±αα α αΎαααααααααααααααα·αααΎααΆαααΆαααααΌααααααΉαααααΆααααααΈ [0, [1, 2, 3]] αααα»α [a, [b, *c]] αααΆ #=> 0
pb #=> α‘
pc #=> [2, 3] α ααααααΈ {a: 0, b: 1}
αααα»α {a: 0, x: 1}
α αα·αα’αΆα α αΌαααΆαα
αααα»α {a: 0, b: var}
p var #=> α‘
αααα αα - αααααααΆαααααΆα’αααααααα irb (REPL, Read-Eval-Print-Loop) α₯α‘αΌααααααΆααα»αααΆαααααααα½αα
αααΎααααααΆαα αααααααΌαααΆαα’αα»αααααααααααΎαααααΆααααααααααΌαααααΆααΉαααΆαα’αΆα
ααΉαααα’αα ααααααα αααα»α Ruby α ααΆαααΆαααα rdoc ααααΌαααΆααα½ααααα αΌα αααα’αα»ααααΆαα±ααα’αααααΎαααααααΆααααααΎααααΆαααααααΆααααααΆαα αααΌαα»α αα·ααα·ααΈααΆααααααααα»α irb α ααΆααααααααΆαααααα·α ααααααααααΆααααααΌαααααααα αΆαααΆαααα Binding #irb αα·αααααααααααΆααααα½ααα·αα·αααααααα»ααααΆααααΌαααααΆαα - ααΆαααααααα§ααααααααααΌαααααΆαααΌα
(Compaction GC) αααα’αΆα
defragment αααααααα’αααα
αα
αΆα αααααααΆααααα αΆααααΎαααΆα αα·αααΆαααααΎααααΆααα’αααα
αα
αΆαααααααααΆαααααΈααΆααααα
ααα’αααα
αα
αΆααααααΎαα‘αΎααα
αααα»ααααααα·ααΈ Ruby αα α»αααααα½αα
ααα½αα ααΎααααΈααα
ααααααα»αα
ααΎαααα
ααΆαααααΎα‘αΎα αα·ααΈααΆααααα GC.compact αααα’αα»ααααΆαα±ααα’αααααΆαααααααα ααα½ααααααα’αααα αα αΆααααααΆαααααΎ αα·ααααααΎαααααα·αααααΆα heap αααααΆααααααα·ααααα·ααΆαα
CoW (α ααααααΎααΆαααααα) α -
ααΆαααααΎα‘αΎα αααα αααΎααααΈαααααα’αΆαα»ααααααααααα’ααααΎααΈααΆαααα αααα»ααααααΈ ("def foo(a,b,c)") αα·αααΆααααααααΉα ("def foo(key: val)") α ααΆαααααααα’αΆαα»ααααααααααααααααααααα·αααααα’ααααΎααΆααααααααΉα αα·αααΈααΆααααααΌαααΆαααα·ααα α αΎαααΉααα·αααααΌαααΆαααΆαααααα αααα»αααΆααΆ Ruby 3.0 ααα ααΆαα·ααα ααΆααααΌαααΆαααα·ααααααα»αααΆαααααΎα’αΆαα»αααααα α»ααααααααΆαααΆαααΆααααααααΆααααααααΉα ααΎααααΈααααααΆααα’αΆαα»αααααααα’ααααΎααΆααααααααΉαααΆαααΆαααΆαααααααααααΆα α»αααααα αα·αααΎααααΈαααααα’αΆαα»αααααα α»αααααααα ααΆαααΆαααΆααααααααΈααΆαα αα·αααΆααααααααΉααdef foo (αααααΉαα α€α’); αααα αα; foo({key: 42}) # ααΆααααααΆα
def foo(**kw); αααα αα; foo({key: 42}) # ααΆααααααΆα
def foo (αααααΉαα α€α’); αααα αα; foo(**{key: 42}) # ααααααα
def foo(**kw); αααα αα; foo(**{key: 42}) # αααααααdef foo(h, **kw); αααα αα; foo (αααααΉαα 42) # ααΆααααααΆα
def foo(h, key: 42); αααα αα; foo (αααααΉαα 42) # ααΆααααααΆα
def foo(h, **kw); αααα αα; foo({key: 42}) # ααααααα
def foo(h, key: 42); αααα αα; foo({key: 42}) # αααααααdef foo(h={}, key: 42); αααα αα; foo("ααΌααα" => 43, ααααΆααα α»α : 42) # ααΆααααααΆα
def foo(h={}, key: 42); αααα αα; foo({"key" => 43, key: 42}) # αααααΆα
def foo(h={}, key: 42); αααα αα; foo({"key" => 43}, key: 42) # αααααααdef foo(opt={}); αααα αα; foo(αααααΉαα 42) # ααααααα
def foo(h, **nil); αααα αα; foo(key: 1) # ArgumentError
def foo(h, **nil); αααα αα; foo(**{key: 1}) # ArgumentError
def foo(h, **nil); αααα αα; foo("str" ββββ => 1) # ααα α»ααααα
def foo(h, **nil); αααα αα; foo({key: 1}) # ααααααα
def foo(h, **nil); αααα αα; foo({"str" ββββ => 1}) # αααααααh = {}; def foo(*a) αααα αα; foo(**h) # [] h = {}; def foo(a) αααα αα; foo(**h) # {} αα·αααΆααααααΆα
h = {}; def foo(*a) αααα αα; foo(h) # [{}] h = {}; def foo(a) αααα αα; foo(h) # {} -
α±ααΆαα αααααααΎαααααα’αααααααααααΆαααααΆαααΎααααααΆαααααΆαααΆαααααααααα»αα[1, 2, 3].ααΈαα½αα { ααΆαα @1 } # ααΌα ααααΆααΉα [1, 2, 3].each { |i| ααΆαααααα»α }
- αααα½αααΆαααΆααααααααααΆαααα½ααααααααΆααααααααααΌαα
ary[..3] #ααααααααΉα ary[0..3] rel.where(αααα ..100)
- ααΆααααααααα·ααΈααΆαααααααΆααααα#ααα»α αααααΆααα
ααα½ααααααααΆαα»ααΈαα½ααααα
α‘αΎαα
["a", "b", "c", "b"].tally
#=> {βaβ=>1, βbβ=>2, βcβ=>1} - ααΆαα α
ααΆααα·ααΈα―αααααααΌαααΆαα’αα»ααααΆαααααααααααα "αααα½αα―α"
def α αααΌ
αααα αα
α―αααα α αααΌ
self.foo - Added Enumerator::Lazy#eager method ααΎααααΈαααααΎαααΆαααΆαααααααΆααααΈα’αααααΆααααααααα·α (Enumerator::Lazy)α
a = %w(foo bar baz)
e=a.lazy.map {|x| x.upcase }.map {|x| x + "!" }.α’ααααααΆα
p e.class #=> Enumerator
p e.map {|x| x + "?" } #=> ["FOO!?", "BAR!?", "BAZ!?"] - ααΆαα’αα·αααααααααααα·ααΈα ααααα JIT αα·αααααααΆααααα αααα’αΆα ααααΎα’αααααααΎαα‘αΎαααΌαααΆαα’αα»αααααααααα·ααΈαα αααα»αααΆααΆ Ruby α αααααα·ααΈα ααααα JIT αααα Ruby ααααΌααααααααΌα C αα ααΆα α αΎααααααΆααααα α αααααα·ααΈα ααααα C ααΆααααα ααΎααααΈαααααΎαααΆαααααΆααααΆαααΈα (ααΆααααααΆαα α GCC, Clang, αα·α Microsoft VC++) α ααααααααΈα’αα»αααααα·ααΈααΆααααααααααΆααααΆαααΆαααααααΆααααα»ααα½αααααα·αααΎα αΆαααΆα α αααααα·ααΈααααΎαααΎααααααααααααΎαααααα·αααααΆαααα‘α»ααααα αααααααααΌαααΆαααΆααΆ αααααααααΆαααΎααα "--jit-min-calls" ααααΌαααΆαααΎαα‘αΎαααΈ 5 αα 10000 αα·α "--jit-max- ααααΆαααααααΆαα" ααΈ 1000 αα 100 α
- ααααΎα±αααααααΎαα‘αΎαααΌαααΆαα’αα»αααααααα CGI.escapeHTML, Monitor αα·α MonitorMixin α
- αααΌαα»α#name, true.to_s, false.to_s, αα·α nil.to_s ααΆααΆααΆααααα’αααααα½αααααΌαααΆααααααΌααααα·αααααα·αααααΆααααααΌααααααΆααααααα»αααααΆααααααΆααα
- ααα αααα―αααΆααααααΈαααααααααΎαααα RubyVM::InstructionSequence#to_binary; method ααααΌαααΆαααΆαααααααα
- αααααααααΆαααααΎαα
αα
α»ααααααααΆααααααΆαααΆααααααααΆααααααΆαα½α αα½αααΆαα
Bundler 2.1.2, RubyGems 3.1.2,
Racc 1.4.15,
CSV 3.1.2, REXML 3.2.3,
RSS 0.2.8,
αααΆαααΈααααααααααα’αααα 1.0.3; - αααααΆαααααααΌαααΆαααααΆααααααΌαααΈαααα
ααααΌαααααΆααα
αααα
ααααααΌαααΆααααα
CMath (ααααΌαααααα)
ααααα (αααααααααΌα),
ααα (ααα ααααΌα)
ααααΎααααΆααααα (ααααΎααααΆαααααααααΌα),
ααααΌααααΉα (Thwait Gem),
E2MM (ααααΌα e2mmap) α - αααΌαα»α stdlib ααααΆαααΎαααααΌαααΆαααααα»ααααα
ααΎααα ααααα rubygems.orgα
αααααααΆα,
cgi,
ααααα·ααΌ
getoptlong,
ααα»ααα»ααα,
αα»ααα-smtp
ααΎα 3,
α αΆαβαααβαααα·α
ααΈααα»αα αααΌαα»ααααΌααΈααααα·αααααΌαααΆαααααΆααααΈαα rubygems.org ααα
α’αααααααααααΆααα
αααβαααα,
ααΆα,
ααΌααΈ
yaml αααααααΌαααΆααααααααααααααα αααα»α ruby-core ααα»αααααα - ααΆααααΆα Ruby α₯α‘αΌαααααααααΌαα±ααααΆααααααα·ααΈα ααααα C αααααΆαααααααααααΆα C99 α
ααααα: opennet.ru