[Rubby] "&"와 "|||"의 평가 방법의 차이

루비가 원점으로 돌아갈 때 &&&와 ||의 평가 방법이 복잡하기 때문에 평가 방법의 차이를 비망록으로 쓴다.

&&(and)

A && BA와 B는 진짜이고, 나머지는 가짜이다
왼쪽이'진짜'라면→오른쪽을 평가해 오른쪽으로 돌아간 결과
왼쪽이'위'였다면→그때 왼쪽으로 돌아간 결과(오른쪽을 보지 않음)

||(or)

A || BA 또는 B는 진짜이고, 둘 다 가짜이다.
왼쪽이'진짜'라면→그때 왼쪽으로 돌아간 결과(오른쪽을 보지 않음)
왼쪽이'위'라면→오른쪽을 평가해 오른쪽으로 돌아간 결과

예제


a = []

# 左辺が「真」のときは、右辺を評価しその結果を返す
a << "apple" && false
=> false

# 左辺が「偽」のときは、左辺の結果を返す(右辺をみない)
false && a << "orange"
=> false

# 左辺が「真」のときは、左辺の結果を返す(右辺をみない)
true || a << "lemon"
=> true

# 左辺が「偽」のときは、右辺を評価しその結果を返す
false || a << "banana"
=> ["apple", "banana"]

p a
=> ["apple", "banana"]

참고 자료


https://docs.ruby-lang.org/ja/latest/doc/spec=2foperator.html#and
https://docs.ruby-lang.org/ja/latest/doc/spec=2foperator.html#or
https://pikawaka.com/ruby/logical-operators

좋은 웹페이지 즐겨찾기