2014-06-24 6 views
4

이 코드가 있습니다def ... else ... end 구문은 무엇입니까?

def with_else 
    puts 'we enter something funny' 
    if true 
    puts "yes" 
    'return YES' 
    end 
    'return what?' 
else 
    puts 'no' 
    'return else -> no' 
end 

puts with_else 

및 출력은 이것이다 :

we enter something funny 
yes 
no 
return else -> no 

왜 내가 그에 대한 오류가 발생하지 않습니다

? def/ else/ end의 의미는 무엇입니까?

http://rubyfiddle.com/riddles/8df07

답변

12

이 실제로 더 큰 구문 구조의 일부입니다

def foo 
    # method stuff 
rescue 
    # stuff if an exception is caught 
else 
    # stuff if no exception is caught 
ensure 
    # always run after rescue and else 
end 

그러나 각 섹션은 선택 사항입니다! 따라서 예제를 얻으려면 rescueensure을 생략 할 수 있습니다.

+1

경고 메시지가 계속 남아 있어야합니다. 경고 : 구조가없는 사람은 쓸모가 없습니다. – sawa

+1

경고가 있지만 Ruby Fiddle (OP가 사용하고있는 것임)에는 표시되지 않습니다. – Grav

+0

가끔 Ruby가 싫어 ... – halfbit

관련 문제