Tag: 一元运算符

一元运算符的运算符优先级

关于运算符优先级的一些信息源就像这样说一元运算符就像! , ~ , + , -优先级高于赋值= 。 但是,以下表达式是可能的: !a = true # => false (with warning) a # => true ~a = 1 # => -2 a # => 1 +a = 1 # => 1 a # => 1 -a = 1 # => -1 a # => 1 考虑到这些结果,我能想到的唯一可能的解释是这些一元运算符的优先级低于赋值。 如果是这种情况,则意味着我上面提到的信息是错误的。 哪个是对的? 有不同的解释吗?

+ @是什么意思作为ruby中的方法

我正在阅读一些代码,我看到了一些类似的东西 module M def +@ self end end 我很惊讶这是合法的语法,但当我在文件上运行ruby -c (对于lint)时,它说它是有效的。 -@也是一个合法的方法名称,但当我尝试*@或d@ ,这些都是非法的。 我想知道+@是什么意思,为什么合法?

Ruby中的一元加运算符有什么意义?

除了使用一元减号进行良好的对称外,为什么在Numeric类上定义了一元加运算符? 它是否具有一些实用价值,除了造成混淆,允许编写像++i这样的东西(与大多数非Rubyists认为不会增加i )。 我可以想到在自定义类上定义一元加号可能很有用的场景(比如你是在创建一些性感的DSL),所以能够定义它是好的,但为什么它已经在Ruby数字上定义了?