Hatena::ブログ(Diary)

はけの徒然日記 このページをアンテナに追加 RSSフィード

2005 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 04 | 05 | 08 | 09 | 10 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 | 11 |
2011 | 01 | 02 | 03 | 04 | 11 | 12 |
2012 | 02 | 03 | 05 |
2014 | 02 | 03 | 04 | 05 | 12 |
2015 | 05 | 07 | 08 | 09 | 10 | 11 | 12 |
2016 | 01 | 02 | 04 | 05 | 08 | 09 | 11 | 12 |
2017 | 01 | 02 | 03 | 04 | 05 |

2006-08-14(Mon)

引数の受け渡し

Ruby勉強

メソッド側で引数に*をつけるとArrayとして残り全てを受け取る、引数の数が固定でない場合に便利。メイン側のArrayに*をつけると要素が展開されて渡される。

def test( x, y, *z)
  p x
  p y
  p z
end

test(0,1)
  # => 0
  # => 1
  # => []  要素の有無に関わらずArrayとなる
test(0,1,2)
  # => 0
  # => 1
  # => [2]

a = 0
b = [1, 2, 3, 4, 5, 6]

test(a,b)
  # => 0
  # => [1, 2, 3, 4, 5, 6] 第二引数にはArrayがそのまま渡る
  # => []
test(b)
  # => wrong number of arguments (1 for 2) (ArgumentError)
  #    引数が2個必要なところに1個しか渡されていない

test(a,*b)
  # => 0
  # => 1    Arrayが展開されて要素が渡される
  # => [2, 3, 4, 5, 6]

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/hake/20060814/p2