ruby – 为什么我不能在海绵参数的右边使用默认参数?

ruby – 为什么我不能在海绵参数的右边使用默认参数?,第1张

概述参见英文答案 > Optional argument after splat argument                                    6个 当我在ruby 2.3.1p112上运行它时: def test(x, *y, z = 1) puts x, y, zend 我收到了这条消息: (repl):1: syntax error, unexpected ' 参见英文答案 > Optional argument after splat argument                                    6个
当我在ruby 2.3.1p112上运行它时:

def test(x,*y,z = 1)    puts x,y,zend

我收到了这条消息:

(repl):1: Syntax error,unexpected '=',expecting ')'def test(x,z = 1)

另一方面,当我改变参数y和z的位置时,它起作用.

def test(x,z = 1,*y)    puts x,zend

为什么不能在sponge参数的右边使用这个可选参数?

实时代码:https://repl.it/CaXU/2

注意:这个问题与Optional argument after splat argument不同,因为该问题询问了一个散列可选参数,而这个问题要求一个简单的非散列可选参数.当它是一个可选的散列参数时,无法知道分配给散列和sponge参数的参数数量.虽然,在可选参数不是哈希的情况下,将一个元素分配给可选参数并将其余元素分配给sponge参数是有意义的.

解决方法 Ruby不允许含糊不清.这些案例在语法上被排除在外.当你传递两个参数时,它如何知道第二个参数是否应该是y的一部分,z没有传递,或者y应该为空,z是第二个参数? 总结

以上是内存溢出为你收集整理的ruby – 为什么我不能在海绵参数的右边使用默认参数?全部内容,希望文章能够帮你解决ruby – 为什么我不能在海绵参数的右边使用默认参数?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1265039.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存