为什么非显式splat参数加上默认参数是Ruby 1.9中方法定义的错误
发布时间:2020-12-17 02:43:13 所属栏目:百科 来源:网络整理
导读:我想问一下为什么在 Ruby-1.9.3-p0中有一个splat param1和一个带有默认值赋值的param2,如下所示: def my_method(* param1,param2 =“default”);结束 回报 SyntaxError:(irb):1:语法错误,意外’=’,期待’)’ 我的解决方法明确将param1包装在括号中,如下
我想问一下为什么在
Ruby-1.9.3-p0中有一个splat param1和一个带有默认值赋值的param2,如下所示:
def my_method(* param1,param2 =“default”);结束 回报 SyntaxError:(irb):1:语法错误,意外’=’,期待’)’ 我的解决方法明确将param1包装在括号中,如下所示: def my_method((* param1),param2 =“default”);结束 非常感谢 解决方法
在splat之后,Ruby无法使用默认值解析参数.如果你在splat之后的参数中有默认赋值,那么Ruby如何知道将变量赋给什么?
def my_method(*a,b = "foo"); end 假设我然后调用my_method: my_method(1,2,3) Ruby无法知道b是否缺失,在这种情况下你希望b是foo而a是[1,3],或者如果b存在,在这种情况下你希望它是3. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |