이 간단한 것을 제대로 정리한 곳이 없어서 정리해둔다. if, case~when 과 같은 문법이다.
pub fn describe(number: Int) -> String {
case number {
0 -> "Zero"
1 -> "One"
}
}
Elixir
복사
이거는 0이 아닐 때
pub fn describe(number: Int) -> String {
case number {
0 -> "Zero"
i -> "Non zero"
}
}
Elixir
복사
이걸 변수 패턴이라 한다.
여기에 추가적인 조건을 걸고자 하면 아래와 같이 사용할 수 있다.
pub fn describe(number: Int) -> String {
case number {
0 -> "Zero"
i if i < 0 -> "Negative number"
}
}
Elixir
복사
성능의 이유로 기초적인 수학과 boolean operator 만 사용 가능하다.
위의 코드는 모든 패턴에 대해 matching 하지 않는다.
이런 경우 아래와 같이 사용할 수 있다.
pub fn describe(number: Int) -> String {
case number {
0 -> "Zero"
i if i < 0 -> "Negative number"
_ -> "Positive number"
}
}
Elixir
복사
Discard pattern 이라 한다.