從蟒蛇背景的多參數功能單一參數的指定值,我已經習慣了運行只提供我需要的參數功能:紅寶石:在使用默認值
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