เจตเจฟเจเจพเจธ เจฆเฉ เจเฉฑเจ เจธเจพเจฒ เจฌเจพเจ
เจฆ
เจฎเฉเฉฑเจ
- เจชเฉเจฐเจฏเฉเจเจพเจคเจฎเจ
เจธเจนเจฟเจฏเฉเจ เจชเฉเจเจฐเจจ เจฎเฉเจฒ (เจชเฉเจเจฐเจจ เจฎเฉเจฒ เจเจพเจเจฆเจพ เจนเฉ ), เจเฉ เจคเฉเจนเจพเจจเฉเฉฐ เจฆเจฟเฉฑเจคเฉ เจเจ เจเจฌเจเฉเจเจ เจเฉฑเจคเฉ เจฆเฉเจนเจฐเจพเจเจฃ เจ เจคเฉ เจชเฉเจเจฐเจจ เจจเจพเจฒ เจฎเฉเจฒ เจนเฉเจฃ 'เจคเฉ เจเฉฑเจ เจฎเฉเฉฑเจฒ เจจเจฟเจฐเจงเจพเจฐเจค เจเจฐเจจ เจฆเฉ เจเจเจพเจเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉเฅคเจเฉเจธ [0, [1, 2, 3]] [a, [b, *c]] pa #=> 0 เจตเจฟเฉฑเจ
pb #=> 1
pc #=> [2, 3] เจ เฉฐเจคเจเฉเจธ {a: 0, b: 1}
in{a:0,x:1}
: เจ เจฃเจเจชเจฒเจฌเจง
{a: 0, b: var} เจตเจฟเฉฑเจ
p var #=> 1
เจ เฉฐเจค - เจเฉฐเจเจฐเจเจเจเจฟเจต เจเฉเจฒเจเฉเจฒเฉเจธเจผเจจ irb (REPL, Read-Eval-Print-Loop) เจฆเฉ เจธเจผเฉเฉฑเจฒ เจตเจฟเฉฑเจ เจนเฉเจฃ เจฌเจนเฉ-เจฒเจพเจเจจ เจธเฉฐเจชเจพเจฆเจจ เจฆเฉ เจธเฉฐเจญเจพเจตเจจเจพ เจนเฉ, เจเฉฑเจ เจฐเฉเจกเจฒเจพเจเจจ-เจ
เจจเฉเจเฉเจฒ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจฒเจพเจเฉ เจเฉเจคเจพ เจเจฟเจ เจนเฉเฅค
เจฒเจพเจเจจ เจฐเฉเจฌเฉ เจตเจฟเฉฑเจ เจฒเจฟเจเจฟเจ. rdoc เจฒเจ เจธเจฎเจฐเจฅเจจ เจเจเฉเจเฉเจฐเจฟเจค เจเฉเจคเจพ เจเจฟเจ เจนเฉ, เจเฉ เจเจฟ irb เจตเจฟเฉฑเจ เจจเจฟเจฐเจงเจพเจฐเจค เจเจฒเจพเจธเจพเจ, เจฎเฉเจกเฉเจเจฒ เจ เจคเฉ เจขเฉฐเจเจพเจ เจฌเจพเจฐเฉ เจนเจตเจพเจฒเจพ เจเจพเจฃเจเจพเจฐเฉ เจฆเฉเจเจฃ เจฆเฉ เจเจเจพเจเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉเฅค เจฌเจพเจเจกเจฟเฉฐเจ#irb เจฆเฉเจเจฐเจพ เจฆเจฟเจเจพเจ เจเจ เจเฉเจก เจฆเฉ เจจเจพเจฒ เจฒเจพเจเจจเจพเจ เจฆเฉ เจฐเฉฐเจเฉเจจ เจนเจพเจเจฒเจพเจเจเจฟเฉฐเจ เจ เจคเฉ เจฌเฉเจธ เจเจฒเจพเจธ เจเจฌเจเฉเจเจ เจฆเฉ เจเจพเจเจ เจฆเฉ เจจเจคเฉเจเฉ เจชเฉเจฐเจฆเจพเจจ เจเฉเจคเฉ เจเจ เจนเจจเฅค - เจเฉฑเจ เจธเฉฐเจเฉเจช เจเฉเฉเจพ เจเจเฉฑเจ เจพ เจเจฐเจจ เจตเจพเจฒเจพ (เจเฉฐเจชเฉเจเจธเจผเจจ GC) เจเฉเฉเจฟเจ เจเจฟเจ เจนเฉ เจเฉ เจฎเฉเจฎเฉเจฐเฉ เจฆเฉ เจเฉฑเจ เจเฉเจคเจฐ เจจเฉเฉฐ เจกเฉเจซเฉเจฐเฉเจเจฎเฉเจเจ เจเจฐ เจธเจเจฆเจพ เจนเฉ, เจนเฉเจฒเฉ เจเจพเจฐเจเฉเจเจผเจพเจฐเฉ เจฆเฉเจเจ เจธเจฎเฉฑเจธเจฟเจเจตเจพเจ เจจเฉเฉฐ เจนเฉฑเจฒ เจเจฐ เจธเจเจฆเจพ เจนเฉ เจ
เจคเฉ เจฎเฉเจฎเฉเจฐเฉ เจซเจฐเฉเจเจฎเฉเจเจเฉเจธเจผเจจ เจฆเฉ เจเจพเจฐเจจ เจตเจงเฉ เจนเฉเจ เจฎเฉเจฎเฉเจฐเฉ เจเจชเจค เจเฉ เจเจฟ เจเฉเจ เจฎเจฒเจเฉ-เจฅเฉเจฐเฉเจกเจก เจฐเฉเจฌเฉ เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจฆเฉ เจธเฉฐเจเจพเจฒเจจ เจฆเฉเจฐเจพเจจ เจตเจพเจชเจฐเจฆเจพ เจนเฉเฅค เจขเฉเจฐ 'เจคเฉ เจตเจธเจคเฉเจเจ เจจเฉเฉฐ เจชเฉเจ เจเจฐเจจ เจฒเจ
เจชเฉเจฐเจธเจคเจพเจตเจฟเจค GC.compact เจขเฉฐเจ เจตเจฐเจคเฉ เจเจ เจฎเฉเจฎเฉเจฐเฉ เจชเฉฐเจจเจฟเจเจ เจฆเฉ เจเจฟเจฃเจคเฉ เจจเฉเฉฐ เจเจเจพเจเจฃ เจ เจคเฉ เจเจชเจฐเฉเจธเจผเจจเจพเจ เจฒเจ เจนเฉเจช เจจเฉเฉฐ เจ เจจเฉเจเฉเจฒ เจฌเจฃเจพเจเจฃ เจฒเจ
CoW (เจจเจเจฒ-เจคเฉ-เจฒเจฟเจเจฃ)เฅค -
เจเฉเจคเจพ เจธเฉเจเฉ ("def foo(a,b,c)") เจ เจคเฉ เจเฉเจตเจฐเจกเจธ ("def foo(key: val)") เจตเจฟเฉฑเจ เจธเจฅเจฟเจคเฉ เจฆเฉ เจเจงเจพเจฐ 'เจคเฉ เจเจฐเจเฉเจฎเฉเจเจเจพเจ เจจเฉเฉฐ เจตเฉฑเจ เจเจฐเจจ เจฆเฉ เจคเจฟเจเจฐเฉเฅค เจเฉเจตเจฐเจกเจธ เจ เจคเฉ เจธเจฅเจฟเจคเฉ เจฆเฉ เจเจงเจพเจฐ 'เจคเฉ เจเจเฉเจฎเฉเจเจฟเจ เจเจฐเจเฉเจฎเฉเจเจ เจชเจฐเจฟเจตเจฐเจคเจจ เจจเฉเฉฐ เจฌเจฐเจคเจฐเจซเจผ เจเฉเจคเจพ เจเจฟเจ เจนเฉ เจ เจคเฉ เจฐเฉเจฌเฉ 3.0 เจธเจผเจพเจเจพ เจตเจฟเฉฑเจ เจธเจฎเจฐเจฅเจฟเจค เจจเจนเฉเจ เจนเฉเจตเฉเจเจพเฅค เจเจพเจธ เจคเฉเจฐ 'เจคเฉ, เจเจเจฐเฉ เจเจฐเจเฉเจฎเฉเจเจ เจจเฉเฉฐ เจเฉเจตเจฐเจก เจชเฉเจฐเจพเจฎเฉเจเจฐเจพเจ เจตเจเฉเจ เจตเจฐเจคเจฃ เจฒเจ, เจเฉเจตเจฐเจก-เจ เจงเจพเจฐเจฟเจค เจเจฐเจเฉเจฎเฉเจเจเจพเจ เจจเฉเฉฐ เจเจเจฐเฉ เจนเฉเจธเจผ เจชเฉเจฐเจพเจฎเฉเจเจฐ เจตเจเฉเจ เจชเจพเจธ เจเจฐเจจ เจฒเจ, เจ เจคเฉ เจเจเจฐเฉ เจเจฐเจเฉเจฎเฉเจเจ เจจเฉเฉฐ เจธเจฅเจฟเจคเฉ เจ เจคเฉ เจเฉเจตเจฐเจก เจชเฉเจฐเจพเจฎเฉเจเจฐเจพเจ เจตเจฟเฉฑเจ เจตเฉฐเจกเจฃ เจฒเจ เจฌเจฐเจคเจฐเจซเจผ เจเฉเจคเจพ เจเจฟเจ เจนเฉเฅคdef foo (เจเฉเฉฐเจเฉ: 42); เจ เฉฐเจค; foo({key: 42}) # เจเฉเจคเจพเจตเจจเฉ เจฆเจฟเฉฑเจคเฉ
def foo (** kw); เจ เฉฐเจค; foo({key: 42}) # เจเฉเจคเจพเจตเจจเฉ เจฆเจฟเฉฑเจคเฉ
def foo (เจเฉเฉฐเจเฉ: 42); เจ เฉฐเจค; foo(**{เจเฉเฉฐเจเฉ: 42}) # เจ เฉเจ เจนเฉ
def foo (** kw); เจ เฉฐเจค; foo(**{เจเฉเฉฐเจเฉ: 42}) # เจ เฉเจ เจนเฉdef foo(h, **kw); เจ เฉฐเจค; foo (เจเฉเฉฐเจเฉ: 42) # เจเฉเจคเจพเจตเจจเฉ เจฆเจฟเฉฑเจคเฉ
def foo(h, เจเฉเฉฐเจเฉ: 42); เจ เฉฐเจค; foo (เจเฉเฉฐเจเฉ: 42) # เจเฉเจคเจพเจตเจจเฉ เจฆเจฟเฉฑเจคเฉ
def foo(h, **kw); เจ เฉฐเจค; foo({key: 42}) # เจ เฉเจ เจนเฉ
def foo(h, เจเฉเฉฐเจเฉ: 42); เจ เฉฐเจค; foo({key: 42}) # เจ เฉเจ เจนเฉdef foo(h={}, เจเฉเฉฐเจเฉ: 42); เจ เฉฐเจค; foo("key" => 43, เจเฉเฉฐเจเฉ: 42) # เจเฉเจคเจพเจตเจจเฉ เจฆเจฟเฉฑเจคเฉ
def foo(h={}, เจเฉเฉฐเจเฉ: 42); เจ เฉฐเจค; foo({"key" => 43, เจเฉเฉฐเจเฉ: 42}) # เจเฉเจคเจพเจตเจจเฉ เจฆเจฟเฉฑเจคเฉ เจเจ
def foo(h={}, เจเฉเฉฐเจเฉ: 42); เจ เฉฐเจค; foo({"key" => 43}, เจเฉเฉฐเจเฉ: 42) # เจ เฉเจ เจนเฉdef foo(opt={}); เจ เฉฐเจค; foo (เจเฉเฉฐเจเฉ: 42) # เจ เฉเจ เจนเฉ
def foo(h, **nil); เจ เฉฐเจค; foo(เจเฉเฉฐเจเฉ: 1) # เจเจฐเจเฉเจฎเฉเจเจ เจเจฐเจฐ
def foo(h, **nil); เจ เฉฐเจค; foo(**{เจเฉเฉฐเจเฉ: 1}) # เจเจฐเจเฉเจฎเฉเจเจ เจเจฐเจฐ
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]เฅคเจนเจฐ { |i| เจฐเฉฑเจเจฆเจพ เจนเฉ }
- เจธเจผเฉเจฐเฉเจเจคเฉ เจฎเฉเฉฑเจฒ เจฆเฉ เจฌเจฟเจจเจพเจ เจฐเฉเจเจเจพเจ เจฒเจ เจชเฉเจฐเจฏเฉเจเจพเจคเจฎเจ เจธเจฎเจฐเจฅเจจเฅค
ary[..3] # ary[0..3] rel.where (เจตเจฟเจเจฐเฉ: ..100) เจฆเฉ เจธเจฎเจพเจจ
- เจเจฟเจฃเจจเจฏเฉเจ#เจเฉเจฒเฉ เจตเจฟเจงเฉ เจธเจผเจพเจฎเจฒ เจเฉเจคเฉ เจเจ, เจเฉ เจนเจฐเฉเจ เจคเฉฑเจค เจฆเฉ เจฆเจฟเจเจพเจ เจฆเฉเจฃ เจฆเฉ เจเจฟเจฃเจคเฉ เจฆเฉ เจเจฟเจฃเจคเฉ เจเจฐเจฆเฉ เจนเฉเฅค
["a", "b", "c", "b"]เฅคเจเฉเจฒเฉ
#=> {โaโ=>1, โbโ=>2, โcโ=>1} - "เจธเจตเฉ" เจธเจผเจพเจฌเจฆเจฟเจ เจจเจพเจฒ เจจเจฟเจเฉ เจตเจฟเจงเฉ เจเจพเจฒ เจฆเฉ เจเจเจพเจเจผเจค เจนเฉ
deffoo
เจ เฉฐเจค
เจจเจฟเฉฑเจเฉ:foo
self.foo - เจเจฒเจธเฉ (เจ
เฉฐเจเจเจพเจฐ::เจเจฒเจธเฉ) เจเจฃเจจเจพ เจคเฉเจ เจจเจฟเจฏเจฎเจค เจเจฃเจจเจพ เจคเจฟเจเจฐ เจเจฐเจจ เจฒเจ เจเจจเฉเจฎเฉเจฐเฉเจเจฐ::เจเจฒเจธเฉ#เจเจเจฐ เจตเจฟเจงเฉ เจธเจผเจพเจฎเจฒ เจเฉเจคเฉ เจเจเฅค
a = %w(foo เจฌเจพเจฐ เจฌเจพเจเจผ)
e = a.lazy.map {|x| x.upcase }. เจจเจเจธเจผเจพ {|x| x + "!" }. เจเจคเจธเฉเจ
p e.class #=> เจเจฟเจฃเจคเฉเจเจพเจฐ
e.map {|x| x + "?" } #=> ["FOO!?", "BAR!?", "BAZ!?"] - เจเฉฑเจ เจชเฉเจฐเจฏเฉเจเจพเจคเจฎเจ JIT เจเฉฐเจชเจพเจเจฒเจฐ เจฆเจพ เจตเจฟเจเจพเจธ เจเจพเจฐเฉ เจนเฉ, เจเฉ เจฐเฉเจฌเฉ เจญเจพเจธเจผเจพ เจตเจฟเฉฑเจ เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจฆเฉ เจเจพเจฐเจเฉเจเจผเจพเจฐเฉ เจตเจฟเฉฑเจ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจธเฉเจงเจพเจฐ เจเจฐ เจธเจเจฆเจพ เจนเฉเฅค เจฐเฉเจฌเฉ เจตเจฟเฉฑเจ เจชเฉเจฐเจธเจคเจพเจตเจฟเจค JIT เจเฉฐเจชเจพเจเจฒเจฐ เจชเจนเจฟเจฒเจพเจ เจกเจฟเจธเจ 'เจคเฉ C เจเฉเจก เจฒเจฟเจเจฆเจพ เจนเฉ, เจเจฟเจธ เจคเฉเจ เจฌเจพเจ เจฆ เจเจน เจฎเจธเจผเฉเจจ เจจเจฟเจฐเจฆเฉเจธเจผ เจคเจฟเจเจฐ เจเจฐเจจ เจฒเจ เจเฉฑเจ เจฌเจพเจนเจฐเฉ C เจเฉฐเจชเจพเจเจฒเจฐ เจจเฉเฉฐ เจเจพเจฒ เจเจฐเจฆเจพ เจนเฉ (GCC, Clang เจ เจคเฉ Microsoft VC ++ เจธเจฎเจฐเจฅเจฟเจค เจนเจจ)เฅค เจจเจตเจพเจ เจธเฉฐเจธเจเจฐเจฃ เจเจจเจฒเจพเจเจจ เจคเฉเจจเจพเจคเฉ เจฒเจ เจเฉฑเจ เจตเจฟเจงเฉ เจฒเจพเจเฉ เจเจฐเจฆเจพ เจนเฉ เจเฉเจเจฐ เจฒเฉเฉ เจนเฉเจตเฉ, เจธเฉฐเจเจฒเจจ เจฆเฉ เจฆเฉเจฐเจพเจจ เจ เจจเฉเจเฉเจฒเจจ เจฎเฉเจกเจพเจ เจฆเฉ เจเฉเจฃเจตเฉเจ เจเจชเจฒเฉเจเฉเจธเจผเจจ, "--เจเฉเจค-เจฎเจฟเจจ-เจเจพเจฒเจเจผ" เจฆเจพ เจฎเฉเจฒ เจฎเฉเฉฑเจฒ 5 เจคเฉเจ 10000 เจคเฉฑเจ เจตเจงเจพ เจฆเจฟเฉฑเจคเจพ เจเจฟเจ เจนเฉ, เจ เจคเฉ "--เจเฉเจค-เจฎเฉเจเจธ-เจเฉเจธเจผ" 1000 เจคเฉเจ 100 เจคเฉฑเจ
- CGI.escapeHTML, เจฎเจพเจจเฉเจเจฐ เจ เจคเฉ MonitorMixin เจฆเฉ เจฌเจฟเจนเจคเจฐ เจเจพเจฐเจเฉเจเจผเจพเจฐเฉเฅค
- Module#name, true.to_s, false.to_s, เจ เจคเฉ nil.to_s เจเจน เจฏเจเฉเจจเฉ เจฌเจฃเจพเจเจเจฆเฉ เจนเจจ เจเจฟ เจเฉฑเจ เจธเจเฉเจฐเจฟเฉฐเจ เจตเจพเจชเจธ เจเฉเจคเฉ เจเจ เจนเฉ เจเฉ เจจเจฟเจฐเจงเจพเจฐเจค เจตเจธเจคเฉ เจฒเจ เจฌเจฆเจฒเจฟเจ เจจเจนเฉเจ เจนเฉเฅค
- RubyVM::InstructionSequence#to_binary เจตเจฟเจงเฉ เจฆเฉเจเจฐเจพ เจคเจฟเจเจฐ เจฌเจพเจเจจเจฐเฉ เจซเจพเจเจฒเจพเจ เจฆเจพ เจเจเจพเจฐ เจเจเจพ เจฆเจฟเฉฑเจคเจพ เจเจฟเจ เจนเฉ;
- เจฌเจฟเจฒเจ-เจเจจ เจเฉฐเจชเฉเจจเฉเจเจเจธ เจฆเฉ เจ
เจชเจกเฉเจ เจเฉเจคเฉ เจธเฉฐเจธเจเจฐเจฃ, เจธเจฎเฉเจค
เจฌเฉฐเจกเจฒเจฐ 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 (cmath เจนเฉเจฐเจพ),
เจธเจเฉเจจเจซ (เจธเจเฉเจจเจซ เจฐเจคเจจ),
เจธเจผเฉเฉฑเจฒ (เจธเจผเฉเจฒ เจฐเจคเจจ),
เจธเจฟเฉฐเจเฉเจฐเฉเจจเจพเจเจเจผเจฐ (เจธเจฎเจเจพเจฒเฉ เจฐเจคเจจ),
เจฅเฉเจฐเฉเฉฑเจกเจธเจตเฉเจ (เจฅเจตเฉเจ เจฐเจคเจจ),
E2MM (e2mmap เจฐเจคเจจ)เฅค - เจกเจฟเจซเจพเจฒเจ stdlib เจฎเฉเจกเฉเจเจฒ rubygems.org 'เจคเฉ เจชเฉเจฐเจเจพเจธเจผเจฟเจค เจเฉเจคเฉ เจเจ เจนเจจ:
เจฌเฉเจเจเจฎเจพเจฐเจ,
cgi,
เจกเฉเจฒเฉเจเฉเจ,
getoptlong,
เจจเฉเฉฑเจ-เจชเฉเจช,
เจจเฉเฉฑเจ เจเจธเจเจฎเจเฉเจชเฉ,
open3,
pstore,
เจธเจฟเฉฐเจเจฒเจเจจ เจฎเจพเจจเฉเจเจฐ เจฎเฉเจกเฉเจเจฒ rubygems.org 'เจคเฉ เจจเจนเฉเจ เจญเฉเจเฉ เจเจ
เจจเจฟเจฐเฉเจเจ,
เจธเจฎเจพเจ เจเจผเจคเจฎ
เจเจฐเฉเจธเจฐ
uri,
yaml, เจเฉ เจธเจฟเจฐเจซเจผ เจฐเฉเจฌเฉ-เจเฉเจฐ เจจเจพเจฒ เจญเฉเจเฉ เจเจพเจเจฆเฉ เจนเจจเฅค - เจฌเจฟเจฒเจกเจฟเฉฐเจ เจฐเฉเจฌเฉ เจฒเจ เจนเฉเจฃ เจเฉฑเจ C เจเฉฐเจชเจพเจเจฒเจฐ เจฆเฉ เจฒเฉเฉ เจนเฉ เจเฉ C99 เจธเจเฉเจเจกเจฐเจก เจฆเจพ เจธเจฎเจฐเจฅเจจ เจเจฐเจฆเจพ เจนเฉเฅค
เจธเจฐเฉเจค: opennet.ru