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

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

下面的代码在Ruby中意味着什么?

||=

它是否有任何意义或理由的语法?


慕工程0101907
浏览 580回答 3
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都受到不同的对待。

HUWWW

简明完整的答案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.评估一次和两次并不会导致程序或系统状态的差异。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Ruby