我對 Ruby 和編程非常陌生,我正在嘗試在下面撰寫這個簡單的函式
def sum_square(x=0, y, z=0)
p x**2 y**2 z**2
end
sum_square(2,3)
我得到這個錯誤語法錯誤,意外'=',期待')'
我想我可以在這里使用可選引數
uj5u.com熱心網友回復:
具有默認值的引數應該放在沒有默認值的引數之后,或者正如 Tom Lord 在評論中所說,可以“放置在串列中的任何其他位置,只要它們都定義在一起”。所以,如果你想保持y強制性,它應該是這樣的
def sum_square(y, x=0, z=0)
p x**2 y**2 z**2
end
但在呼叫程序中可能會造成混淆,因此您可以切換到命名引數:
def sum_square=(y, x:0, z:0)
p x**2 y**2 z**2
end
# all these call are valid
sum_square(1)
sum_square(1, x:2)
sum_square(1, z:2)
sum_square(1, x:2, z:3)
使用更通用的方法(對于使用 的任意數量的輸入*)或命名所有引數,有更多可能的方法可以實作注釋中列出的此功能。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/416948.html
標籤:
上一篇:我無法在codeigniter中正確顯示View。使用我一直在嘗試的foreach回圈
下一篇:在活動記錄結果陣列中查找
