-4

||=Rubyの演算子について読んだ内容に基づいて、次のコード行でa例の変数 (まだ割り当てられていない変数) を に割り当てる必要があると思い5ます。

a |= "-----n-".index /n/

単独で評価 "-----n-".index /n/するだけで が得られます5

ただし、上記の行を実行すると、 にa設定されtrueます。

次のように設定bしますがfalse、次のようになると予想されbますnil

b |= "-----n-".index /o/

これを説明してもらえますか?

4

2 に答える 2

2

これは、a |= exprが に脱糖されているために発生しa = a | exprます。右側でaは、最初はnilです。

この式は と同等でa = nil | expr、引数が非 nil の場合に true を返します (詳細については、 nil#|に関するドキュメントを参照してください)。おそらく、a ||= exprどちらが脱糖されているかを書くつもりでしたa = a || expr

于 2013-03-22T05:09:50.537 に答える
1

||=|=は異なる演算子です。あなたは1つについて話しますが、別のものを使用します。注意を払う!

a ||= "-----n-".index(/n/) # => 5
b ||= "-----n-".index(/o/) # => nil

c |= "-----n-".index(/n/) # => true
d |= "-----n-".index(/o/) # => false
于 2013-03-22T05:04:20.903 に答える