Tag: optional parameters

使用可选的第一个哈希参数和keyword_args的奇数方法行为

我有以下方法: def test(first_param = nil, keyword_arg: nil) puts “first_param: #{first_param}” puts “keyword_arg: #{keyword_arg}” end 以下所有调用都按我的预期执行: test(:something) #=> first_param: something # keyword_arg: test(nil, keyword_arg: :keyword_arg) #=> first_param: # keyword_arg: keyword_arg test({ first_param: :is_a_hash }, keyword_arg: :is_still_working) #=> first_param: {:first_param=>:is_a_hash} # keyword_arg: is_still_working 但是省略可选的keyword_arg并将散列作为第一个参数传递给我一个错误: test(first_param: :is_a_hash) #=> test.rb:1:in `test’: unknown keyword: first_param (ArgumentError) # from test.rb:12:in `’ […]

Ruby可选参数和多个参数

我试图将方法的第一个参数设置为可选,然后是任意数量的args。 例如: def dothis(value=0, *args) 我遇到的问题是,这似乎不太可能吗? 当我打电话给dothis(“hey”, “how are you”, “good”)我希望它将值设置为默认为0,但它只是使value=”hey” 。 有没有办法完成这种行为?