2008年4月29日火曜日

Chapter 6 More about Methods

うーん。だんだんチュートリアル調がタルくなってきた。
Part IIIからやればよかったかな。

お、*rest が使える。

def varargs(arg1, *rest)
...

restはArrayになると。

Iteratorについては、methods定義の際に&で明示的に引数指定された場合だけ、Proc objectに自動変換されるのか。そいで、その呼び出しはyieldではなく、.callとなる。

method を call するとき、receiver をomitすると、selfだということになる。
selfって? おお、あのselfか。pythonでよく見る。

すべての method はvalueを返す。関数型的な側面?
returnもある。大域脱出。

おお、*で多値ができるのか。

irb(main):006:0> def five(a, b, c, d, e)
"I was passed #{a} #{b} #{c} #{d} #{e}"
end
def five(a, b, c, d, e)
"I was passed #{a} #{b} #{c} #{d} #{e}"
end
nil
irb(main):009:0> five(*(10..14).to_a)
five(*(10..14).to_a)
"I was passed 10 11 12 13 14"
irb(main):010:0>

ああ、ちゃう、これは多値じゃない。わからん、Ocamlにあったかね。

あ、lambdaだ。これはProc objectをつくる、と。

keyword parameter は無い。代わりにhashを使う、と。
これ、書きぶりはkeyword parameterとほぼ同じ。

0 件のコメント: