順番通りに渡すなら、配列で渡すことが出来て便利。最近は kwargs があるからキーワード引数に頼るかもしれないけど、単純なことならこっちでも充分に間に合う。
引数を配列で指定する
このために *array と * を着けて指定する.
おなじみのopen を配列で指定。
a = ["test.html", "w"] open(*a) #=> #<File:test.html>
これは、配列をHashで作ったりするのにも使われている。
もう少しサンプル
#!/ust/bin/env ruby # Rubyの引数を配列で渡す require 'pp' def my_login( id,ps ) name, pass = id, ps pp [name, pass] end my_login("takuya", "pass") #=> ["takuya", "pass"] array = ["takuya", "pass"] my_login(*array) #=>["takuya", "pass"] hash = {:id=>"takuya", :pw=>"pass"} my_login(*hash) # => [[:id, "takuya"], [:pw, "pass"]] my_login(*hash.values) #=> ["takuya", "pass"]
Hashをキーワード引数で渡さずに配列で渡すときは valuesとか必要でした。
それでも配列指定はそれなりに便利ですね。DBやJSONの配列をそのまま突っ込める。