从蟒蛇背景的多参数功能单一参数的指定值,我已经习惯了运行只提供我需要的参数功能:红宝石:在使用默认值
def f(a=1,b=2)
print a,b
f(b=3) #prints "1 3"
红宝石似乎提供可选参数相同的语法:
def f(a=1, b=2)
puts "#{a} #{b}"
end
但运行f(b=3)
打印3 2
代替。
我的猜测是它正在评估b=3
之前函数调用发生,并将其作为第一个参数传递。
这个解释是否正确,是否有一种方法可以调用提供任意参数的函数?
不幸的是我得到的函数定义语法错误:'语法错误,意想不到的“:”,希望“\ n”或“;”'。这个语法在Ruby 1.8上可用吗? – goncalopp
@goncalopp你使用Ruby'2.0.0'吗? As *关键字参数*仅在此处可用。 –
@ArupRakshit不,我仍然在'1.8'(硬性要求)。有什么解决方法吗? – goncalopp