엘 름셔 프로그래밍 언어에서 에는 두 개의 유사한 구문 인과 case
이 있습니다. 모두 나도 클럽에 if
을 넣어 보자 this pageCond와 Case의 차이점은 무엇입니까?
17
A
답변
35
에 설명하는 다른 langages
모두 cond
및 case
에서 switch
또는 select
문을 닮은. 하나의 조건과 가능하면 else
인 if
을 사용하면됩니다. 두 개 이상의 조건이 있고 if
문으로 충분하지 않을 경우 문을 사용합니다. 결과적으로 일부 데이터와 패턴을 일치시킬 때 case
문을 사용합니다. 당신이, 당신이 사용할 수있는 오늘이 아니라면 비가 오거나 쌀의 경우 사과를 먹고 싶은 생각 :
의이 예에 의해 설명하게
if weather == :raining do
IO.puts "I'm eating apple"
else
IO.puts "I'm eating rice"
end
이 제한된 세계, 당신은 당신의 선택권을 확장 할 수 있도록하고 cond
문이 그것을 위해, 그래서 그것 때문에 당신은 다음과 같이 몇 가지 조건에 다른 것을 먹을 것이다 :
cond do
weather == :raining and not is_weekend ->
IO.puts "I'm eating apple"
weather == :raining and is_weekend ->
IO.puts "I'm will eat 2 apples!"
weather == :sunny ->
IO.puts "I'm happy!"
weather != :raining and is_sunday ->
IO.puts "I'm eating rice"
true ->
IO.puts "I don't know what I'll eat"
end
마지막 true
이 있어야한다, 그렇지 않으면 예외를 발생시킬 수 있습니다.
글쎄 그럼 case
은 무엇인가요? 일치하는 것을 패턴 화하는 데 사용됩니다. 의 당신이 날씨와 튜플의 메시지로 요일에 대한 정보를 수신 가정하자 당신은, 당신이 당신의 의도를 쓸 수있는 결정을 내려야하는에 따라 달라집니다
case { weather, weekday } do
{ :raining, :weekend } ->
IO.puts "I'm will eat 2 apples!"
{ :raining, _ } ->
IO.puts "I'm eating apple"
{ :sunny, _ } ->
IO.puts "I'm happy!"
{ _, :sunday } ->
IO.puts "I'm eating rice"
{ _, _ } ->
IO.puts "I don't know what I'll eat"
end
는 그래서 case
당신에게 제공 if
또는 cond
이없는 데이터에 대한 패턴 일치 방식.
14
내 대답은 간단하다 :
cond
는 인수를 수신하지 않으며, 당신이 각 지점에서 다른 조건을 사용할 수 있습니다.case
은 인수를 받고 모든 분기는 인수에 대해 인 입니다.