เดฑเต‚เดฌเดฟ 2.7.0 เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เดญเดพเดทเดฏเตเดŸเต† เดชเตเดฐเด•เดพเดถเดจเด‚

เด’เดฐเต เดตเตผเดทเดคเตเดคเต† เดตเดฟเด•เดธเดจเดคเตเดคเดฟเดจเต เดถเต‡เดทเด‚ เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเดšเตเดšเต เดชเตเดฐเด•เดพเดถเดจเด‚ เดฑเต‚เดฌเดฟ 2.7.0, เด’เดฐเต เดกเตˆเดจเดพเดฎเดฟเด•เต เด’เดฌเตเดœเด•เตเดฑเตเดฑเต-เด“เดฑเดฟเดฏเดจเตเดฑเดกเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เดญเดพเดท, เด…เดคเต เดชเตเดฐเต‹เด—เตเดฐเดพเด‚ เดกเต†เดตเดฒเดชเตโ€Œเดฎเต†เดจเตเดฑเดฟเตฝ เดตเดณเดฐเต† เด•เดพเดฐเตเดฏเด•เตเดทเดฎเดฎเดพเดฃเต, เด•เต‚เดŸเดพเดคเต† Perl, Java, Python, Smalltalk, Eiffel, Ada, Lisp เดŽเดจเตเดจเดฟเดตเดฏเตเดŸเต† เดฎเดฟเด•เดšเตเดš เดธเดตเดฟเดถเต‡เดทเดคเด•เตพ เด‰เตพเด•เตเด•เตŠเดณเตเดณเตเดจเตเดจเต. เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เด•เต‹เดกเต BSD ("2-เด•เตเดฒเต‹เดธเต BSDL"), "เดฑเต‚เดฌเดฟ" เดฒเตˆเดธเตปเดธเตเด•เตพเด•เตเด•เต เด•เต€เดดเดฟเดฒเดพเดฃเต เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต, เด‡เดคเต GPL เดฒเตˆเดธเตปเดธเดฟเดจเตเดฑเต† เดเดฑเตเดฑเดตเตเด‚ เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเดฟเดจเต† เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต เด•เต‚เดŸเดพเดคเต† GPLv3 เดฏเตเดฎเดพเดฏเดฟ เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดจเตเดจเต. เดซเต€เดšเตเดšเตผ เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเดฒเตเด•เตพเด•เตเด•เดพเดฏเดฟ เด’เดฐเต เดตเตผเดทเด‚ เดฎเดพเดฑเตเดฑเดฟเดตเต†เด•เตเด•เตเดจเตเดจเดคเตเด‚ 2.7-2 เดฎเดพเดธเดคเตเดคเต† เดชเดพเดšเตเดšเต เดฑเดฟเดฒเต€เดธเตเด‚ เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจ เด†เดธเต‚เดคเตเดฐเดฟเดค เดตเดฟเด•เดธเดจ เดชเตเดฐเด•เตเดฐเดฟเดฏเดฏเตเดŸเต† เดญเดพเด—เดฎเดพเดฏเดฟ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจ เดเดดเดพเดฎเดคเตเดคเต† เดชเตเดฐเดงเดพเดจ เดชเดคเดฟเดชเตเดชเดพเดฃเต เดฑเต‚เดฌเดฟ 3.

เดชเตเดฐเดงเดพเดจ เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเตฝ:

  • เดชเดฐเต€เด•เตเดทเดฃเดพเดคเตเดฎเด• เดชเดฟเดจเตเดคเตเดฃ เดชเดพเดฑเตเดฑเต‡เตบ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดคเตเดคเตฝ (เดชเดพเดฑเตเดฑเต‡เตบ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดคเตเดคเตฝ) เดคเดจเตเดจเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เด’เดฌเตโ€Œเดœเด•เตเดฑเตเดฑเดฟเดจเต เดฎเตเด•เดณเดฟเตฝ เด†เดตเตผเดคเตเดคเดฟเด•เตเด•เดพเดจเตเด‚ เด’เดฐเต เดชเดพเดฑเตเดฑเต‡เตบ เดชเตŠเดฐเตเดคเตเดคเด‚ เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเตฝ เด’เดฐเต เดฎเต‚เดฒเตเดฏเด‚ เดจเตฝเด•เดพเดจเตเด‚.

    เด•เต‡เดธเต [0, [1, 2, 3]] เตฝ [a, [b, *c]] pa #=> 0
    pb #=> 1
    pc #=> [2, 3] เด…เดตเดธเดพเดจเด‚

    เด•เต‡เดธเต {a: 0, b: 1}
    เด‡เตป{a:0,x:1}
    :เดŽเดคเตเดคเดพเดจเดพเด•เดฟเดฒเตเดฒ
    {a: 0, b: var}-เตฝ
    p var #=> 1
    เด…เดตเดธเดพเดจเดฟเด•เตเด•เตเดจเตเดจเต

  • เด‡เดจเตเดฑเดฑเดพเด•เตเดŸเต€เดตเต เด•เดฃเด•เตเด•เตเด•เต‚เดŸเตเดŸเดฒเตเด•เดณเตเดŸเต† เดทเต†เดฒเตเดฒเดฟเดจเต (REPL, Read-Eval-Print-Loop) เด‡เดชเตเดชเต‹เตพ เดฎเตพเดŸเตเดŸเดฟ-เดฒเตˆเตป เดŽเดกเดฟเดฑเตเดฑเดฟเด‚เด—เดฟเดจเตเดฑเต† เดธเดพเดฆเตเดงเตเดฏเดคเดฏเตเดฃเตเดŸเต, เด‡เดคเต เด’เดฐเต เดฑเต€เดกเตโ€Œเดฒเตˆเตป-เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดพเดฏ เดฒเตˆเดฌเตเดฐเดฑเดฟ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเต. เดตเดฟเดถเตเดฐเดฎเดฟเด•เตเด•เตเด•เดฑเต‚เดฌเดฟเดฏเดฟเตฝ เดŽเดดเตเดคเดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. rdoc-เดจเตเดณเตเดณ เดชเดฟเดจเตเดคเตเดฃ เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เด‡เดคเต irb-เดฏเดฟเดฒเต† เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เด•เตเดฒเดพเดธเตเด•เตพ, เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เตพ, เดฐเต€เดคเดฟเด•เตพ เดŽเดจเตเดจเดฟเดตเดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดฑเดซเดฑเตปเดธเต เดตเดฟเดตเดฐเด™เตเด™เตพ เด•เดพเดฃเตเดจเตเดจเดคเดฟเดจเต เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต. Binding#irb-เดฒเต‚เดŸเต† เด•เดพเดฃเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เด•เต‹เดกเตเดณเตเดณ เดฒเตˆเดจเตเด•เดณเตเดŸเต† เดจเดฟเดฑเดฎเตเดณเตเดณ เดนเตˆเดฒเตˆเดฑเตเดฑเดฟเด‚เด—เตเด‚ เด…เดŸเดฟเดธเตเดฅเดพเดจ เด•เตเดฒเดพเดธเต เด’เดฌเตโ€Œเดœเด•เตเดฑเตเดฑเตเด•เตพ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฑเต† เดซเดฒเด™เตเด™เดณเตเด‚ เดจเตฝเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต.

    เดฑเต‚เดฌเดฟ 2.7.0 เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เดญเดพเดทเดฏเตเดŸเต† เดชเตเดฐเด•เดพเดถเดจเด‚

  • เดšเดฟเดฒ เดฎเตพเดŸเตเดŸเดฟ-เดคเตเดฐเต†เดกเต เดฑเต‚เดฌเดฟ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เดณเตเดŸเต† เดชเตเดฐเดตเตผเดคเตเดคเดจ เดธเดฎเดฏเดคเตเดคเต เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจ เดฎเต†เดฎเตเดฎเดฑเดฟ เดซเตเดฐเดพเด—เตโ€Œเดฎเต†เดจเตเดฑเต‡เดทเตป เด•เดพเดฐเดฃเด‚ เดฎเต†เดฎเตเดฎเดฑเดฟเดฏเตเดŸเต† เดฎเดจเตเดฆเด—เดคเดฟเดฏเดฟเดฒเตเดณเตเดณ เดชเตเดฐเด•เดŸเดจเดคเตเดคเดฟเดจเตเดฑเต†เดฏเตเด‚ เดตเตผเดฆเตเดงเดฟเดšเตเดš เดฎเต†เดฎเตเดฎเดฑเดฟ เด‰เดชเดญเต‹เด—เดคเตเดคเดฟเดจเตเดฑเต†เดฏเตเด‚ เดชเตเดฐเดถเตโ€Œเดจเด™เตเด™เตพ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เดฎเต†เดฎเตเดฎเดฑเดฟเดฏเตเดŸเต† เด’เดฐเต เดชเตเดฐเดฆเต‡เดถเดคเตเดคเดฟเดจเตเดฑเต† เดกเต€เดซเตเดฐเดพเด—เตเดฎเต†เดจเตเดฑเต‡เดทเตป เดจเดŸเดคเตเดคเดพเดจเตเด‚ เด•เดดเดฟเดฏเตเดจเตเดจ เด’เดฐเต เด•เต‹เด‚เดชเดพเด•เตเดฑเตเดฑเต เด—เดพเตผเดฌเต‡เดœเต เด•เดณเด•เตเดŸเตผ (เด•เต‹เด‚เดชเดพเด•เตโ€Œเดทเตป เดœเดฟเดธเดฟ) เดšเต‡เตผเดคเตเดคเต. เด•เต‚เดฎเตเดชเดพเดฐเดคเตเดคเดฟเตฝ เดตเดธเตเดคเตเด•เตเด•เตพ เดชเดพเด•เตเด•เต เดšเต†เดฏเตเดฏเดพเตป เดจเดฟเตผเดฆเตเดฆเต‡เดถเดฟเดšเตเดšเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดš เดฎเต†เดฎเตเดฎเดฑเดฟ เดชเต‡เดœเตเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚ เด•เตเดฑเดฏเตเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ เดนเต€เดชเตเดชเต เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดฎเตเดณเตเดณ GC.compact เดฐเต€เดคเดฟ
    เดชเดถเต (เดชเด•เตผเดชเตเดชเต-เด“เตบ-เดฑเตˆเดฑเตเดฑเต).

  • เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดฟ เดฒเดฟเดธเตเดฑเตเดฑเดฟเดฒเต† เดธเตเดฅเดพเดจเด‚ ("def foo(a,b,c)") เด•เต€เดตเต‡เดกเตเด•เตพ ("def foo(key: val)") เดŽเดจเตเดจเดฟเดตเดฏเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟ เดตเต‡เตผเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เด†เตผเด—เตเดฏเตเดฎเต†เดจเตเดฑเตเด•เตพ เดคเดฏเตเดฏเดพเดฑเดพเด•เตเด•เดพเตป เดคเดฏเตเดฏเดพเดฑเต†เดŸเตเด•เตเด•เตเดจเตเดจเต. เด•เต€เดตเต‡เดกเตเด•เดณเตเด‚ เดธเตเดฅเดพเดจเดตเตเด‚ เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟเดฏเตเดณเตเดณ เดธเตเดตเดฏเดฎเต‡เดตเดฏเตเดณเตเดณ เด†เตผเด—เตเดฏเตเดฎเต†เดจเตเดฑเต เดชเดฐเดฟเดตเตผเดคเตเดคเดจเด‚ เด…เดตเดธเดพเดจเดฟเดชเตเดชเดฟเดšเตเดšเต, เดฑเต‚เดฌเดฟ 3.0 เดฌเตเดฐเดพเดžเตเดšเดฟเตฝ เดชเดฟเดจเตเดคเตเดฃเดฏเตโ€Œเด•เตเด•เดฟเดฒเตเดฒ. เดชเตเดฐเดคเตเดฏเต‡เด•เดฟเดšเตเดšเตเด‚, เด…เดตเดธเดพเดจ เด†เตผเด—เตเดฏเตเดฎเต†เดจเตเดฑเต เด•เต€เดตเต‡เดกเต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เดณเดพเดฏเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เด•เต€เดตเต‡เดกเต เด…เดงเดฟเดทเตโ€Œเด เดฟเดค เด†เตผเด—เตเดฏเตเดฎเต†เดจเตเดฑเตเด•เตพ เด…เดตเดธเดพเดจ เดนเดพเดทเต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเดพเดฏเดฟ เดจเตฝเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เด…เดตเดธเดพเดจ เด†เตผเด—เตเดฏเตเดฎเต†เดจเตเดฑเดฟเดจเต† เดชเตŠเดธเดฟเดทเดจเตฝ, เด•เต€เดตเต‡เดกเต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เดณเดพเดฏเดฟ เดตเดฟเดญเดœเดฟเด•เตเด•เดพเดจเตเด‚ เด‡เดคเต เด’เดดเดฟเดตเดพเด•เตเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต.

    def foo (เด•เต€: 42); เด…เดตเดธเดพเดจเดฟเด•เตเด•เตเดจเตเดจเต; foo({เด•เต€: 42}) #เดฎเตเดจเตเดจเดฑเดฟเดฏเดฟเดชเตเดชเต เดจเตฝเด•เดฟ
    def foo (**kw); เด…เดตเดธเดพเดจเดฟเด•เตเด•เตเดจเตเดจเต; foo({เด•เต€: 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({เด•เต€: 42}) # เดถเดฐเดฟ
    def foo (h, เด•เต€: 42); เด…เดตเดธเดพเดจเดฟเด•เตเด•เตเดจเตเดจเต; foo({เด•เต€: 42}) # เดถเดฐเดฟ

    def foo(h={}, เด•เต€: 42); เด…เดตเดธเดพเดจเดฟเด•เตเด•เตเดจเตเดจเต; foo("เด•เต€" => 43, เด•เต€: 42) #เดฎเตเดจเตเดจเดฑเดฟเดฏเดฟเดชเตเดชเต เดจเตฝเด•เดฟ
    def foo(h={}, เด•เต€: 42); เด…เดตเดธเดพเดจเดฟเด•เตเด•เตเดจเตเดจเต; foo({"key" => 43, key: 42}) # เดฎเตเดจเตเดจเดฑเดฟเดฏเดฟเดชเตเดชเต เดจเตฝเด•เดฟ
    def foo(h={}, เด•เต€: 42); เด…เดตเดธเดพเดจเดฟเด•เตเด•เตเดจเตเดจเต; foo({"เด•เต€" => 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({เด•เต€: 1}) # เดถเดฐเดฟ
    def foo(h, **nil); เด…เดตเดธเดพเดจเดฟเด•เตเด•เตเดจเตเดจเต; foo({"str" โ€‹โ€‹=> 1}) # เดถเดฐเดฟ

    h = {}; def foo(*a) เด…เดตเดธเดพเดจเด‚; foo(**h) # [] h = {}; def foo(a) end; foo(**h) # {} เด•เต‚เดŸเดพเดคเต† เดฎเตเดจเตเดจเดฑเดฟเดฏเดฟเดชเตเดชเต
    h = {}; def foo(*a) เด…เดตเดธเดพเดจเด‚; foo(h) # [{}] h = {}; def foo(a) end; foo(h) # {}

  • เด…เดตเดธเดฐเด‚ เดฌเตเดฒเต‹เด•เตเด•เต เดชเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพเด•เตเด•เดพเดฏเดฟ เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ เด…เด•เตเด•เดฎเดฟเดŸเตเดŸ เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดจเดพเดฎเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต.

    [1, 2, 3].เด“เดฐเต‹เดจเตเดจเตเด‚ { @1 } # เดชเต‹เดฒเต† [1, 2, 3]. เด“เดฐเต‹เดจเตเดจเดฟเดจเตเด‚ { |i| เดžเดพเตป } เด‡เดŸเตเดจเตเดจเต

  • เดชเตเดฐเดพเดฐเด‚เดญ เดฎเต‚เดฒเตเดฏเดฎเดฟเดฒเตเดฒเดพเดคเตเดค เดถเตเดฐเต‡เดฃเดฟเด•เตพเด•เตเด•เตเดณเตเดณ เดชเดฐเต€เด•เตเดทเดฃเดพเดคเตเดฎเด• เดชเดฟเดจเตเดคเตเดฃ.

    ary[..3] # ary [0..3] rel.เดŽเดตเดฟเดŸเต† (เดตเดฟเตฝเดชเตเดชเดจ: ..100)

  • เด“เดฐเต‹ เดฎเต‚เดฒเด•เดตเตเด‚ เดŽเดคเตเดฐ เดคเดตเดฃ เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเต เดŽเดจเตเดจเต เด•เดฃเด•เตเด•เดพเด•เตเด•เตเดจเตเดจ, Enumerable#tally เดฐเต€เดคเดฟ เดšเต‡เตผเดคเตเดคเต.

    ["a", "b", "c", "b"].tally
    #=> {"a"=>1, "b"=>2, "c"=>1}

  • "เดธเตเดตเดฏเด‚" เดŽเดจเตเดจ เด…เด•เตเดทเดฐเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เดธเตเดตเด•เดพเดฐเตเดฏ เดฐเต€เดคเดฟเดฏเดฟเดฒเตเดณเตเดณ เด•เต‹เตพ เด…เดจเตเดตเดฆเดจเต€เดฏเดฎเดพเดฃเต

    เดกเดฟเดซเต‚
    เด…เดตเดธเดพเดจเดฟเด•เตเด•เตเดจเตเดจเต
    เดธเตเดตเด•เดพเดฐเตเดฏเด‚ :foo
    self.foo

  • เดฎเดŸเดฟเดฏเตป (Enumerator::Lazy) เดŽเดฃเตเดฃเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเดคเดฟเดตเต เด•เดฃเด•เตเด•เต†เดŸเตเดชเตเดชเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ Enumerator::Lazy#aager เดฐเต€เดคเดฟ เดšเต‡เตผเดคเตเดคเต.

    a = %w(foo bar baz)
    เด‡ = a.lazy.map {|x| x.upcase }.map {|x| x + "!" }.เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต
    p e.class #=> เดŽเดจเตเดฏเต‚เดฎเดฑเต‡เดฑเตเดฑเตผ
    เด‡.เดฎเดพเดชเตเดชเต {|x| x + "?" } #=> [โ€œFOO!?โ€, โ€œBAR!?โ€, โ€œBAZ!?โ€]

  • เด’เดฐเต เดชเดฐเต€เด•เตเดทเดฃเดพเดคเตเดฎเด• JIT เด•เดฎเตเดชเตˆเดฒเดฑเดฟเดจเตเดฑเต† เดตเดฟเด•เดธเดจเด‚ เดคเตเดŸเดฐเตเดจเตเดจเต, เด‡เดคเต เดฑเต‚เดฌเดฟ เดญเดพเดทเดฏเดฟเดฒเต† เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เดณเตเดŸเต† เดชเตเดฐเด•เดŸเดจเด‚ เด—เดฃเตเดฏเดฎเดพเดฏเดฟ เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเตเด‚. เดฑเต‚เดฌเดฟเดฏเดฟเตฝ เดจเดฟเตผเดฆเตเดฆเต‡เดถเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ JIT เด•เด‚เดชเตˆเดฒเตผ เด†เดฆเตเดฏเด‚ เดกเดฟเดธเตเด•เดฟเดฒเต‡เด•เตเด•เต C เด•เต‹เดกเต เดŽเดดเตเดคเตเดจเตเดจเต, เด…เดคเดฟเดจเตเดถเต‡เดทเด‚ เด…เดคเต เดฎเต†เดทเต€เตป เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด’เดฐเต เดฌเดพเดนเตเดฏ C เด•เด‚เดชเตˆเดฒเดฑเดฟเดจเต† เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเต (GCC, Clang, Microsoft VC ++ เดŽเดจเตเดจเดฟเดต เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเต). เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเต เด†เดตเดถเตเดฏเดฎเต†เด™เตเด•เดฟเตฝ เด‡เตปเดฒเตˆเตป เดตเดฟเดจเตเดฏเดพเดธเดคเตเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เดฐเต€เดคเดฟ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเต, เด•เด‚เดชเตˆเดฒเต‡เดทเตป เดธเดฎเดฏเดคเตเดคเต เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเต‡เดทเตป เดฎเต‹เดกเตเด•เดณเตเดŸเต† เดธเต†เดฒเด•เตเดŸเต€เดตเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป, "--jit-min-calls" เดจเตเดฑเต† เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เดฎเต‚เดฒเตเดฏเด‚ 5 เตฝ เดจเดฟเดจเตเดจเต 10000 เด†เดฏเดฟ เด‰เดฏเตผเดคเตเดคเดฟ, เด•เต‚เดŸเดพเดคเต† "--jit-max-cache" 1000 เดฎเตเดคเตฝ 100 โ€‹โ€‹เดตเดฐเต†.
  • CGI.escapeHTML, Monitor, MonitorMixin เดŽเดจเตเดจเดฟเดตเดฏเตเดŸเต† เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดŸ เดชเตเดฐเด•เดŸเดจเด‚.
  • Module#name, true.to_s, false.to_s, nil.to_s เดŽเดจเตเดจเดฟเดต เดจเดฟเตผเดฆเตเดฆเดฟเดทเตโ€ŒเดŸ เด’เดฌเตโ€Œเดœเด•เตเดฑเตเดฑเดฟเดจเต เดฎเดพเดฑเตเดฑเดฎเดฟเดฒเตเดฒเดพเดคเตเดค เด’เดฐเต เดธเตเดŸเตเดฐเดฟเด‚เด—เต เดคเดฟเดฐเดฟเด•เต† เดจเตฝเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเต เด‰เดฑเดชเตเดชเดพเด•เตเด•เตเดจเตเดจเต.
  • RubyVM::InstructionSequence#to_binary เดฐเต€เดคเดฟ เดธเตƒเดทเตเดŸเดฟเดšเตเดš เดฌเตˆเดจเดฑเดฟ เดซเดฏเดฒเตเด•เดณเตเดŸเต† เดตเดฒเดฟเดชเตเดชเด‚ เด•เตเดฑเดšเตเดšเต;
  • เด‰เตพเดชเตเดชเต†เดŸเต†เดฏเตเดณเตเดณ เด…เดจเตเดคเตผเดจเดฟเตผเดฎเตเดฎเดฟเดค เด˜เดŸเด•เด™เตเด™เดณเตเดŸเต† เด…เดชเตเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดค เดชเดคเดฟเดชเตเดชเตเด•เตพ
    เดฌเดฃเตเดŸเตผ 2.1.2, เดฑเต‚เดฌเดฟเดœเต†เด‚เดธเต 3.1.2,
    เดฑเดพเด•เตเด•เต 1.4.15,
    CSV 3.1.2, REXML 3.2.3,
    RSS 0.2.8,
    เดธเตเดŸเตเดฐเดฟเด‚เด—เต เดธเตเด•เดพเดจเตผ 1.0.3;

  • เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เตพ เด…เดŸเดฟเดธเตเดฅเดพเดจ เดตเดฟเดคเดฐเดฃเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดฌเดพเดนเตเดฏ เดฐเดคเตเดจ เดชเดพเด•เตเด•เต‡เดœเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฑเดฟ
    CMath (cmath gem),
    เดธเตเด•เดพเตปเดซเต (เดธเตเด•เดพเตปเดซเต เดฐเดคเตเดจเด‚),
    เดทเต†เตฝ (เดทเต†เตฝ เดฐเดคเตเดจเด‚),
    เดธเดฟเตปเด•เตเดฐเตŠเดฃเตˆเดธเตผ (เดธเดฎเดจเตเดตเดฏ เดฐเดคเตเดจเด‚),
    เดคเตเดฐเต†เดกเตเด•เตพ เดตเต†เดฏเดฟเดฑเตเดฑเต (เดฐเดคเตเดจเด‚ เดคเต‚เด™เตเด™เดฟเด•เตเด•เดฟเดŸเด•เตเด•เตเด•),
    E2MM (e2mmap เดฐเดคเตเดจเด‚).

  • เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ stdlib เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เตพ rubygems.org-เตฝ เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต:
    เดฎเดพเดจเดฆเดฃเตเดกเด‚,
    cgi,
    เดชเตเดฐเดคเดฟเดจเดฟเดงเดฟ,
    เดจเต€เดฃเตเดŸเตเดจเดฟเตฝเด•เตเด•เตเด•,
    เดจเต†เดฑเตเดฑเต เดชเต‹เดชเตเดชเต,
    เดจเต†เดฑเตเดฑเต เดŽเดธเตเดŽเด‚เดŸเดฟเดชเดฟ,
    เดคเตเดฑเด•เตเด•เตเด•3,
    เดธเตเดฑเตเดฑเต‹เตผ,
    เดธเดฟเด‚เด—เดฟเตพเดŸเตบ. เดฎเต‹เดฃเดฟเดฑเตเดฑเตผ เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เตพ rubygems.org-เดฒเต‡เด•เตเด•เต เดจเต€เด•เตเด•เดฟเดฏเดฟเดŸเตเดŸเดฟเดฒเตเดฒ
    เดจเดฟเดฐเต€เด•เตเดทเด•เตป,
    เดŸเตˆเด‚ เด”เดŸเตเดŸเต,
    เดŸเตเดฐเต‡เดธเตผ,
    เด‰เดฑเดฟ,
    เดฏเดฎเตฝ, เดฑเต‚เดฌเดฟ-เด•เต‹เตผ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดฎเดพเดคเตเดฐเด‚ เด…เดฏเดฏเตโ€Œเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจเต.

  • เดฑเต‚เดฌเดฟ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด‡เดชเตเดชเต‹เตพ C99 เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเดฟเดจเต† เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดธเดฟ เด•เดฎเตเดชเตˆเดฒเตผ เด†เดตเดถเตเดฏเดฎเดพเดฃเต.

เด…เดตเดฒเด‚เดฌเด‚: opennet.ru

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•