[英]Why does '||' operator return '[ ]'?
我在控制台上對此進行了測試:
[] || 1 # => []
它不應該返回退出的值,而不是返回[]
嗎? 我可以將其更改為三元運算符,它可以正常工作,但是為什么上述條件不起作用?
因為[]
在Ruby中是真實值,所以表達式的第二部分永遠不會執行,因此它的總值為[]
。 在Ruby中,只有false
和nil
是不正確的。
哦,無論如何,您不需要。 如果數組為空,則map
返回一個空數組。
Model.new(
name: abc.name,
description: abc.description,
product_ids: abc.product_ids.map(&:id)
)
||
的確切語義 是:
nil
或false
,則返回它 nil
或false
,則返回第二個表達式 因此,由於[]
是真實的,因此它將評估為[]
,如@Ursus所解釋。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.