Erlang의 if는 부울 식의 간단한 패턴 일치이며 결과를 반환합니다.
정말 뭔가가 일치하는지, 당신은 "사실 -> 사실"필요가 없습니다 필요
모든
예를 들어
의 경우 : - 경우
if
(Velocity > 40) -> io:format(" processing fast !~n") ;
(Velocity < 40) -> io:format(" processing slow !~n") ;
(Velocity == 40) -> io:format(" processing eh !~n")
end,
더 "> 사실"없습니다를 그러나 패턴 중 하나와 일치하지 않을 가능성도 없습니다.
그 이유는 "경우는" 그래서, 당신은 같은 것을 할 수있는 (얼랑의 모든 같은) 표현도 있다는 것입니다 :의 값이 무엇
X = if
(Vel > 40) -> 10;
(Vel < 40) -> 5
end,
하면 VEL의 == (40) 엑스? 그것은 정의되지 않았으므로 erlang은 항상 일치하는 것을 요구합니다.
당신이 완전한 일치를 지정하지 않는 일반적인 일이 같은 사실 사용하는 것입니다 : 마지막 경우
X = if
(Vel > 40) -> 10;
(Vel < 40) -> 5;
true -> 0
end,
, X는 항상 값이 (10, 5 또는 0)
의미가 있습니까?
사실, 당신의 조건에 "참"을 갖는 것은 오히려 낙심입니다. 왜냐하면 이것은 당신이 조건을 검사 할 때 모든 가능성을 다루지 못함을 보여주기 때문입니다. 가능한 모든 조건을 확인하면 진실한 진술은 반드시 필요하거나 의무 사항은 아닙니다. – 3yakuya
감사합니다 Byakuya. –