0
1

Ruby Silver練習問題個人的詰まったやつ

Posted at

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

参考

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1