|=
今日初めて見たので、それがどのように機能し、いつ役立つかを理解しようとしています.
いくつかの実験は次のことを示しています。
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
これは、が偽または未定義である
限り、式が評価され、ブール値にキャストされた戻り値が割り当てられることを意味します。var |= some_truthy_expression
が呼び出されるとすぐにvar
になりtrue
、さらに を呼び出すとvar |= expression_will_not_be_called
、式は評価されません。
|=
そのように動作しますか? Ruby ドキュメントのどこで見つけることができますか?- いつ
|=
便利になりますか?