2012-10-03 4 views
0

Ruby style guide에 있습니다.누군가이 루비 코드가하는 일을 설명 할 수 있습니까?

1 > 2 ? true : false; puts 'Hi' 

나는 항상 Hi을 반환한다고 가정하지만 어떻게 읽습니까?

+0

주를 테스트 할 수 있습니다 : 나는 terneary 연산자 (이해 :)?. 나를 혼란스럽게하는 부분은; "안녕하세요" –

+0

넣으면 단순히 인쇄됩니다 –

+0

이것은 나쁜 예입니다. 그것은 많은 것을 의미하지는 않습니다. – sawa

답변

3

1> 2이면 true이고, 그렇지 않으면 false입니다.

그러나 조건 결과가 무엇이든간에 hi이 인쇄됩니다. 1은 2보다 큰 다음에 해당하는 경우

if 1 > 2 then 
    true 
else 
    false 
end 
puts 'hi' 
+1

감사. 이걸 지나치게 생각한 것처럼 보입니다. –

+0

괜찮습니다! 동의하는 경우 허용으로 표시하십시오. –

0

루비 컴파일러이처럼 읽

1.>(2) 
puts "Hi" 

삼원 연산자? : 중복됩니다. '보다 큼'symbol :> 비교는 실제로 Numeric 클래스의 메서드입니다.

2

당신은 다른 후 거짓이 같은

1 > 2 ? true : false # first line of code 
puts "Hi" #second line of code 
0

을 둔다. 그래서 그냥 같은 단지 false는, 몇 가지 경우를 제외하고 (아무것도하지 않을 것이다라는 한 줄

false 
puts "Hi" 

에 그리고 물론 동일합니다

1 > 2 ? true : false 
puts "Hi" 

이 함수의 마지막 행의 경우처럼 이 경우 메소드는 해당 행에 도달하면 false를 리턴합니다.

0

> 2? 허위 사실; 두고 "안녕"그 다음은

if 1 > 2 
    return true 
else 
    return false 
end 
puts "Hi" 

을 의미 때마다 결과가 우리가 조건의 외부에 "안녕"인쇄 있기 때문에 "안녕하세요"인쇄됩니다 어떤 의미합니다.

if 1 > 2 
puts "1 is not greater than 2" 
else 
puts "1 is greater than 2" 
end 

하지만

당신은 또한 당신의 콘솔에서

1.9.3p125 :002 > if 1 > 2 
1.9.3p125 :003?> puts "1 is not greater than 2" 
1.9.3p125 :004?> else 
1.9.3p125 :005 >  puts "1 is greater than 2" 
1.9.3p125 :006?> end 
1 is greater than 2 
=> nil 
관련 문제