답변
if
a == b ->
expr1;
true ->
exprElse
end
당신은 진정한 일치, 얼랑의 다른 진짜가 없습니다. 자세한 내용은 Erlang documentation.
';'에주의를 기울여야합니다. 터미네이터 :
if
a == b ->
clauseN,
expr1;
cond2 ->
clause1,
clause2,
expr2;
cond3 ->
expr3;
true ->
exprElse
end
복사하여 붙여 넣을 수있는 언어는 아닙니다.
if
A =:= B ->
expr1;
true ->
expr2
end
또는
case A =:= B of
true -> expr1;
false -> expr2
end
또는
case A of
B -> expr1;
_ -> expr2
end
또는
foo(A,B), ...
...
foo(X,X) -> expr1;
foo(_,_) -> expr2.
패턴 매칭은 Erlangs 많은 장점 중 하나이며, 그것은 종종 대신 if 문 사용할 수 있습니다. 함수 인수에서 패턴 매치를하거나 패턴 표현을 사용하는 사례 표현을 사용하는 것이 더 읽기 쉽습니다.
두 개의 인수를 취하는 some_function
함수가 있다고 가정 해보십시오. 인수가 같으면 expression1을 평가하고, 그렇지 않으면 expression2를 평가합니다. 이 같은 얼랑으로 표현 될 수있다 :
some_function(A, A) -> expression1;
some_function(A, B) -> expression2.
그것은 당신이 단순한 패턴 매칭의 종류 달성 할 수있는 얼마나 많은 매우 놀랍습니다. 가드 조항하면
some_function(A, B) when A < B -> expression3.
또 다른 가능성은 case .. of
표현을 사용하는 것, 예를 들어, 더 복잡한 패턴을 표현할 수 있습니다. 특정 예 (expression2
항상 a
및 b
원자 때문에 평가와 얼랑의 변수는 대문자입니다. 서로 결코 동일한 것이이 경우.)
case a == b of
true -> expression1;
false -> expression2
end.
로 변환 할
당신은 읽을 수 있습니다 얼랑 표현에 대한 자세한 내용 here.
대신'= : = ' '=='. 이것은 정말 좋은 답변입니다. 새로운 erlang 프로그래머는'if' 문이'when' 문이어야하는 이유를 알아낼 때까지 항상'case'를 사용해야합니다. – archaelus
또 다른 옵션 :
case a of
b -> expr1; %% true
_ -> expr2 %% false
end.
- 1. data.table 문제 ifelse 동작
- 2. ORDER BY에 대한 쿼리 내의 IFELSE 문
- 3. PHP Ifelse 문이 참이 아닌 경우
- 4. IEditableCollectionView 인터페이스 구현 방법
- 5. java에서 "supplant"구현 방법
- 6. DrawableGameComponent XNA, 구현 방법?
- 7. HTTP 터널링 구현 방법
- 8. is_stl_vector 구현 방법
- 9. ACL 구현 방법
- 10. .NET : "Hashes"구현 방법
- 11. IPC 구현 방법
- 12. 구현 방법 .Join()?
- 13. 카테고리 시스템 구현 방법
- 14. FlowDocument - KeepWithNext 구현 방법
- 15. Silverlight -지도 구현 방법
- 16. 이 UI 구현 방법
- 17. iphone에 NSGraphicsContext 구현 방법
- 18. 작업 완료 구현 방법
- 19. web.sitemap에서 현지화 구현 방법
- 20. 다차원 배열 구현 방법
- 21. 맞춤 태그 구현 방법
- 22. dtmf 구현 방법
- 23. String Match 구현 방법
- 24. 구현
- 25. COM 개체에서 Dispose 구현 방법
- 26. __hash__ 및 __str__ 구현 방법
- 27. 이미지가있는 Android 목록 - 구현 방법
- 28. 통화 기록을위한 ContentObserver 구현 방법
- 29. sharepoint 구현 방법 webservice 목록
- 30. C# Rhino 보안 구현 방법
도 참조 [이 질문] (http://stackoverflow.com/questions/4327860/erlang-equivalent-to-if-else). – legoscia