それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

Ruby関数の引数を配列でまとめて渡す。

順番通りに渡すなら、配列で渡すことが出来て便利。最近は 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の配列をそのまま突っ込める。