[英]Syntax error, unexpected '}', expecting :: or '[' or '.'
[英]syntax error, unexpected '=', expecting ')'
我是 Ruby 和编程的新手,我正在尝试在下面编写这个简单的 function
def sum_square(x=0, y, z=0)
p x**2 + y**2 + z**2
end
sum_square(2,3)
我得到这个错误语法错误,意外'=',期待')'
我想我可以在这里使用可选参数
具有默认值的参数应该放在没有默认值的参数之后,或者正如 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)
有更多可能的方法来实现这个 function 列在评论中,使用更通用的方法(对于使用*
的任意数量的输入)或命名所有参数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.