Tag: operator precedence

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

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

为什么`在Ruby中返回a或b`是一个void值表达式错误?

这很好: def foo a or b end 这也没关系: def foo return a || b end 这将返回void value expression : def foo return a or b end 为什么? 它甚至没有被执行; 它没有通过语法检查。 void value expression意味着什么?