트랙
/
Elixir
Elixir
/
학습 과정
/
다중 절 함수
다중

다중 절 함수 에서 Elixir

72개의 연습 문제

다중 절 함수 소개

Elixir에서는 하나의 함수가 여러 개의 절을 가질 수 있어요. 이는 함수의 인자를 패턴 매칭하고 가드를 사용함으로써 가능해요.

# pattern matching the argument
def number(7) do
  "Awesome, that's my favorite"
end

# using a guard
def number(n) when is_integer(n) do
  "That's not my favorite"
end

def number(_n) do
  "That's not even a number!"
end
  • 여러 함수 절을 사용해 함수에서 제어 로직을 추출해요.
  • 절은 소스 파일의 위에서 아래로 순서대로 시도되며, 하나가 성공할 때까지 진행돼요.
  • 아무것도 성공하지 못하면, BEAM VM에서 FunctionClauseError가 발생해요.
  • 인자 변수가 함수 본문이나 가드에서 사용되지 않으면, 앞에 _를 붙여야 해요. 그렇지 않으면 컴파일러에서 경고가 발생해요.
  • 익명 함수도 여러 개의 절을 가질 수 있어요.
    fn
      13 -> "Awesome, that's my favorite"
      _ -> "That's not my favorite"
    end
    

여러 절 함수는 다른 프로그래밍 언어에서 알 수 있는 함수 오버로딩과 혼동하면 안 돼요. Elixir에서 함수는 이름과 인자의 개수로만 식별되며, 인자의 타입은 식별에 사용되지 않아요(정적 타입이 없기 때문이에요). 예제의 number/1 함수는 몇 개의 절을 가지고 있든 하나의 함수로 간주돼요.

GitHub에서 편집 링크가 새 창이나 탭에서 열려요

다중 절 함수 배우기

연습이 잠겨 있어요

다중 절 함수 개념을 연습하려면 연습 문제 10개를 더 잠금 해제해요