今天我|=第一次看到它,我试图了解它是如何工作的以及它什么时候有用。
一些实验表明:
var |= nil
# => false
var |= false
# => false
var |= true
# => true
var |= 1
# => true
var |= nil
# => true
var |= false
# => true
var
# => true
在 Github 的 html-pipeline gem 中找到。
def link_to_mentioned_user(login)
result[:mentioned_usernames] |= [login]
url = File.join(base_url, login)
"<a href='#{url}' class='user-mention'>" +
"@#{login}" +
"</a>"
end
我假设它|=像一个受保护的赋值一样工作||=,但是将表达式的返回值转换为一个布尔值。
这意味着只要var是 falsy 或 undefined,表达式就会被计算并且返回值被赋值为一个布尔值。一旦var |= some_truthy_expression被调用,varwill betrue和进一步调用var |= expression_will_not_be_called将不会评估表达式。
- 它是这样工作的吗,在哪里可以找到
|=Ruby 文档? - 什么时候可以
|=派上用场?