yarv-dev:26
From: SASADA Koichi <ko1 atdot.net>
Date: Mon, 17 May 2004 18:09:06 +0900
Subject: [yarv-dev:26] Re: initialize block local variables
matz ruby-lang.org (Yukihiro Matsumoto) wrote :
[ [yarv-dev:25] Re: initialize block local variables ]
at Mon, 17 May 2004 17:27:25 +0900
ささだです。
いろいろと大変参考になりました。多分、まとめておいたほうが
いいと思うのですが、ruby-list, dev どっちがいいでしょうか。
(talk は無理)
list に投げておけば、ruby-dev summary にあたらないからいいかなぁ。
(周知の事実だったりして)
キーワード引数についてもう少し。
1. アクセスの方法
def m(a, b, k:10, **kargs)
p k
p kargs[:hoge]
end
のように使う、でよいでしょうか。
Hash#[] のように、引数として与えられていないキーワードに対
する kargs への参照は nil になるのかな。
2. **kargs のクラスについて
def m(a, b, **kargs)
p kargs.class #=> Hash
end
のように、Hash になるんでしょうか。逆に言うと、
hash = {:k1 => 1, :k2 => 2, ...}
m(**hash)
でキーワード引数として展開して渡せるんでしょうか。
でも、
def m(hash={...}, **kargs)
...
end
のとき、どっちになるかわからなくなる。
----
hash だと考えると、実装は結構簡単そうですね。
def m(a, b, k:10)
p k
end
=>
p METHOD_LOCAL_KEYWORD_HASH[:k]
のように置換か。
--
// SASADA Koichi at atdot dot net
//
--
ML: yarv-dev quickml.atdot.net
使い方: http://www.atdot.net/~ko1/quickml
15 2004-05-17 04:14 [ko1 atdot.net ] initialize block local variables 16 2004-05-17 08:38 ┗[matz ruby-lang.org ] 17 2004-05-17 10:37 ┣[ko1 atdot.net ] 20 2004-05-17 13:23 ┃┗[matz ruby-lang.org ] 22 2004-05-17 15:58 ┃ ┗[ko1 atdot.net ] 23 2004-05-17 16:14 ┃ ┗[matz ruby-lang.org ] 24 2004-05-17 16:58 ┃ ┗[ko1 namikilab.tuat.a] 25 2004-05-17 17:27 ┃ ┗[matz ruby-lang.org ] -> 26 2004-05-17 18:09 ┃ ┗[ko1 atdot.net ] 27 2004-05-17 18:38 ┃ ┗[matz ruby-lang.org ] 21 2004-05-17 13:45 ┗[nobu.nokada softhome]