加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-17 01:56:43 所属栏目:百科 来源:网络整理
导读:参见英文答案 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
参见英文答案 > Optional argument after splat argument????????????????????????????????????6个
当我在ruby 2.3.1p112上运行它时:

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

我收到了这条消息:

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

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

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

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

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

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

解决方法

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读