加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在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(参考实现)中工作,那么它是合法的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读