为了账号安全,请及时绑定邮箱和手机立即绑定

在Ruby中,x=(或-等于)意味着什么?

在Ruby中,x=(或-等于)意味着什么?

慕工程0101907 2019-06-10 17:06:54
在Ruby中,x=(或-等于)意味着什么?下面的代码在Ruby中意味着什么?||=它是否有任何意义或理由的语法?
查看完整描述

3 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

这个问题在Ruby邮件列表和Ruby博客上经常被讨论,以至于现在甚至在Ruby邮件列表上都有线程,其唯一目的是收集链接到所有其他线程在Ruby邮件列表上讨论这个问题。

这里有一个:\x=(OR相等)线程和页的最终列表

如果你真的想知道发生了什么,看看11.4.2.3节的“简写作业”Ruby语言草案规范.

作为第一次近似,

a ||= b

等于

a || a = b

相当于

a = a || b

然而,这只是第一个近似,特别是在a是个未知数。语义也因是简单变量赋值、方法赋值还是索引赋值而有所不同:

a    ||= b
a.c  ||= b
a[c] ||= b

都受到不同的对待。


查看完整回答
反对 回复 2019-06-10
?
HUWWW

TA贡献1874条经验 获得超12个赞

简明完整的答案

a ||= b

评估方法与以下几行

a || a = b
a ? a : a = bif a then a else a = b end

-

另一方面,

a = a || b

评估方法与以下几行

a = a ? a : bif a then a = a else a = b end

-

编辑:正如AJedi32在评论中指出的那样,这只有在以下情况下才成立。A是一个已定义的变量。2.评估一次和两次并不会导致程序或系统状态的差异。


查看完整回答
反对 回复 2019-06-10
  • 3 回答
  • 0 关注
  • 534 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信