5
return 키워드가 'if block'에서 문제를 일으키는 이유는 무엇입니까?
다음 코드는 잘 작동합니다.person = {:a=>:A, :b=>:B, :c=>:C}
berson = {:a=>:A1, :b=>:B1, :c=>:C1}
kerson = person.merge(berson) do | key, oldv, newv |
if key == :a
oldv
elsif key == :b
newv
else
key
end
end
puts kerson.inspect
return
을 "if block"안에 추가하면 오류가 발생합니다.
person = {:a=>:A, :b=>:B, :c=>:C}
berson = {:a=>:A1, :b=>:B1, :c=>:C1}
kerson = person.merge(berson) do | key, oldv, newv |
if key == :a
return oldv
elsif key == :b
return newv
else
return key
end
end
puts kerson.inspect
위의 코드에서 오류가 발생했습니다 :
unexpected return (LocalJumpError)
누구든지 이것을 설명 할 수 있습니까? return
은 반환 값의 가정이 이미있는 곳이라면 선택적으로 사용할 수 있다고 생각했습니다.