NameError: undefined local variable or method `a' for main:Obj-6ren">
gpt4 book ai didi

ruby - 与 "unexpected unary+"之后的空格相关的奇怪语法错误 `+`

转载 作者:数据小太阳 更新时间:2023-10-29 07:46:09 27 4
gpt4 key购买 nike

鉴于 a 是未定义的,下面看起来不错:

a + b + blah
# => NameError: undefined local variable or method `a' for main:Object

删除空间似乎很重要:

a + b +blah
# => syntax error, unexpected unary+, expecting keyword_do or '{' or '('

这是什么意思,为什么仅仅删除一个空格就会出现这种情况? + 在这里不正常处理吗?如果我定义了 ab,它就变成了:

a, b = 1, 1
a + b +blah
# => NameError: undefined local variable or method `blah' for main:Object

再次看起来像 + 被正确处理的地方。

最佳答案

一元 +@ 运算符本身是有效的(采用单个操作数并返回其值 - 例如。+4 返回 4)。不要与作用于两个操作数的加法运算符 + 混淆。

此外,它优先于普通的 + 加法运算符。

因此, a + b +c 中的 +c in a + b +c 被解析为等同于 a + b c,这是无效的,因为 Ruby 无法确定 +c 是普通方法参数 () 还是 block { }

关于ruby - 与 "unexpected unary+"之后的空格相关的奇怪语法错误 `+`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30974036/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com