在Ruby中,foo = expression是合法的吗?
发布时间:2020-12-17 01:52:29 所属栏目:百科 来源:网络整理
导读:注意:我不确定如何命名这个问题,所以如果有人有更好的想法,请编辑它. 我会直接回答这个问题,因为没有任何预先解释要求. 这段代码: !foo = true 生成此警告 warning: found = in conditional,should be == 我会理解,如果这是在if或除非声明之后发生的,但这
注意:我不确定如何命名这个问题,所以如果有人有更好的想法,请编辑它.
我会直接回答这个问题,因为没有任何预先解释要求. 这段代码: !foo = true 生成此警告 warning: found = in conditional,should be == 我会理解,如果这是在if或除非声明之后发生的,但这不能远离它们(夸大).我意识到我可以使用: foo = true !foo 我想,这个警告并不是什么大不了的事,但是Ruby假设我做错了什么,当我没有做错时,有点恼火. 问题: >这是一个错误吗? 谢谢! 解决方法
合法.不是错误.警告可以被抑制.
您可以使用以下命令禁用警告: $VERBOSE = nil 有趣的是,$VERBOSE是将某些东西设置为false的情况与将其设置为nil不同的情况. 顺便说一句,其他答案,至少在最初,倾向于假设Ruby将表达式解析为 (!foo) = true ……但事实并非如此.它被解析为: !(foo = true) ……所以它正在做OP所需要的.并且Ruby没有规范或批准的标准,因此如果它在MRI(参考实现)中工作,那么它是合法的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |