gpt4 book ai didi

ruby 1.9.x,奇怪的解析,这是怎么回事?

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

我什至不知道给这个标题起什么标题。有人可以向我解释这里到底发生了什么吗?这是对我真正在做的事情的简化,当然,如果是这样的话,会有更简单的方法,但为什么 ruby​​ 1.9.x 解析器在处理 1.8.x 中工作的东西时遇到了麻烦,而且看起来很简单?

 (rdb:2) struct = Struct.new(:foo, :bar).new
(rdb:2) p struct.send( ( "foo".to_s +'=') , "VALUE")
NoMethodError Exception: undefined method `+@' for "=":String

什么?但这很好用:

 (rdb:2) struct.send( ("foo".to_s) +'=') , "VALUE")

等等,这个也是,我猜它现在需要在“+”运算符和第二个值之间有一个空格?

 (rdb:2) p struct.send( ( "foo".to_s + '=') , "VALUE")

什么鬼? Ruby 1.8.x 现在可以用了。等等,ruby 1.9.x 支持一元前缀运算符什么的,它说如果我不留空格,字符串就没有一元前缀运算符“+”?

嗯?谁能解决这个问题?

最佳答案

Ruby 1.8.7 还支持一元 +,并为 +'=' 提供相同的错误。

我假设解析逻辑发生了一些变化,并且 +'=' 在您的表达式中被解析为一元加号。我不会认为这是一个错误。

关于ruby 1.9.x,奇怪的解析,这是怎么回事?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7922742/

24 4 0