:foo
Ruby シンボル (例: ) を関数のオプションとして (オプション ハッシュとしてではなく)使用する方法を知りたいです。
例:
round(28.53, :floor)
get_data(:age)
そのような引数を受け入れる関数を作成するにはどうすればよいですか?
メソッドに複数のオプションを送信したいとします。そして、オプションが存在する場合は何かをしたい(この場合はそれを印刷させてください)それ以外の場合は何もしない/気にしないでください
def meth( opt = {} )
opt.keys.each { |o| puts opt[0]
end
# pass two options
meth(:name => 'Ruby', :floor => 23.5) #=> Ruby, 23.5
#pass one option
meth(:name => 'Rails') #=> Rails
それって問題ですか?
def puts_class param
puts param.class
end
puts_class :asd
=>
Symbol
実際、シンボルは Ruby メソッドのオプションとして想定されたことはありません。それはハッシュについてです:
some_method(1,2, param: :value, param2: value2) # curly braces omitted
# equal to
some_method(1,2, {param: value, param2: value2})