注意:我不确定如何命名这个问题,所以如果有人有更好的想法,请编辑它.
我会直接回答这个问题,因为没有任何预先解释要求.
这段代码:
!foo = true
Run Code Online (Sandbox Code Playgroud)
生成此警告
warning: found = in conditional, should be ==
Run Code Online (Sandbox Code Playgroud)
我会理解,如果这是在一个if或一个unless声明之后发生的,但这不能远离他们(夸大).我意识到我可以使用:
foo = true
!foo
Run Code Online (Sandbox Code Playgroud)
我想,这个警告并不是什么大不了的事,但是Ruby假设我做错了什么,当我没有做错时,有点恼火.
问题:
谢谢!
Dig*_*oss 10
您可以使用以下命令禁用警告:
$VERBOSE = nil
Run Code Online (Sandbox Code Playgroud)
有趣的$VERBOSE是,设置某些false东西与设置不同的情况nil.
顺便说一句,其他答案,至少在最初,倾向于假设Ruby将表达式解析为
(!foo) = true
Run Code Online (Sandbox Code Playgroud)
......但事实并非如此.它被解析为:
!(foo = true)
Run Code Online (Sandbox Code Playgroud)
......所以它正在做OP所需要的.并且Ruby没有规范或批准的标准,因此如果它在MRI(参考实现)中工作,那么它是合法的.
| 归档时间: |
|
| 查看次数: |
575 次 |
| 最近记录: |