【发布时间】:2015-04-13 03:49:15
【问题描述】:
我们不能将关键字参数作为带有字符串键的散列传递,关键字参数仅适用于作为符号键的散列。
一个简单的例子:
def my_method(first_name:, last_name: )
puts "first_name: #{first_name} | last_name: #{last_name}"
end
my_method( {last_name: 'Sehrawat', first_name: 'Manoj'})
#=> first_name: Manoj | last_name: Sehrawat
my_method( {first_name: 'Bob', last_name: 'Marley'})
#=> first_name: Bob | last_name: Marley
my_method( {'first_name' => 'Kumar', 'last_name' => 'Manoj'})
#=> Error: missing keywords: first_name, last_name (ArgumentError)
背后的原因是什么?
【问题讨论】:
-
@freemanoid 我不这么认为。在这种情况下,语法是关于如何接受局部变量。不涉及任何符号。
标签: ruby ruby-2.0 ruby-2.1 keyword-argument