gpt4 book ai didi

ruby - 为什么 ruby​​ 将++ 解释为 +@

转载 作者:数据小太阳 更新时间:2023-10-29 08:15:40 26 4
gpt4 key购买 nike

我在 irb 中得到奇怪的输出

>> [1, 2] + + [3]
NoMethodError: undefined method `+@' for [3]:Array
from (irb):2
from /home/marko/.rubies/ruby-2.3.1/bin/irb:11:in `<main>'
>> [1, 2] ++ [3]
NoMethodError: undefined method `+@' for [3]:Array
from (irb):3
from /home/marko/.rubies/ruby-2.3.1/bin/irb:11:in `<main>'
>>

这是故意发生的还是错误?
+ + 转换为 +@

背后的逻辑是什么

最佳答案

它不是将+ +转换为+@,而是将后者的+转换为+@,即前缀 + 运算符。因此,表达式的解析方式与 [1, 2] + (+[3]) 相同。

(+@ 用于表示一元加运算符,因为 + 是为二元加运算符保留的。)

(此外,Ruby 中没有 ++ 运算符。)

关于ruby - 为什么 ruby​​ 将++ 解释为 +@,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42735247/

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