[前][次][番号順一覧][スレッド一覧][生データ]

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]