and
이 &&
보다 낮은 우선 순위가 키워드. 둘 다 short-circuit evaluation을 사용하십시오.
먼저 puts
은 항상 nil
을 반환합니다. 루비에서는 nil
이 거짓입니다. nil
때문에 evaulated되지 않습니다
puts("asd") && puts("xxx")
asd
=> nil
두 경우 모두
puts "asd"
에서
및 puts("asd")
반환 nil
그래서 puts "xxx"
및 puts("xxx")
:이 동일하다
2.2.0 :002 > puts "asd" and puts "xxx"
asd
=> nil
:
2.2.0 :002 > puts "asdf"
asdf
=> nil
이제 우리는 당신의 예를보십시오 가짜이며 단락 회로 제거가 사용되고 있습니다.
puts "asd" && puts "xxx"
도 시도했지만 &&
연산자의 우선 순위가 높기 때문에 구문 오류입니다. puts "asd" && puts "xxx"
때문이다
puts "asd" && puts "xxx"
SyntaxError: (irb):3: syntax error, unexpected tSTRING_BEG, expecting keyword_do or '{' or '('
puts "asd" && puts "xxx"
^
는 puts("asd" && puts) "xxx"
과 동일합니다.
2.2.0 :012 > puts("asd" && puts) "xxx"
SyntaxError: (irb):12: syntax error, unexpected tSTRING_BEG, expecting end-of-input
puts("asd" && puts) "xxx"
^
은 참조 : this related post
어떤 언어가 무엇입니까? – sawa
죄송합니다. 지금은 죄송합니다. – Patryk
당신이 원하는 것은'puts "asd"\ n "puts"xxx " –