Rexより
- 次のコードを実行するとどうなりますか
a = [1, 2, 5, 7, 8]
b = [1, 3, 6, 7, 9]
c = nil || a & b | a && a | b
p c
考え方
1.左から||
を評価していく
||
は左辺が偽(nil,false)の時に||
の右辺を実行する
2.&&
を評価する
&&
は左辺が真の時に&&
の右辺を実行する
※a & b | a
をしているがnilやfalseにならないので真
3. a | b
の結果を出力
# c
[1, 2, 5, 7, 8, 3, 6, 9]
使いそうな場面
nilチェックとか
# aがnilの場合は右辺の処理をする
a || ( a = 20 )
# 自己代入で書くと↓(a = a + 1 => a +=1 )
a ||= 20
参考