트랙
/
Elixir
Elixir
/
학습 과정
/
파이프 연산자
파이

파이프 연산자 에서 Elixir

10개의 연습 문제

파이프 연산자 소개

|> 연산자는 파이프 연산자라고 해요. 이 연산자를 사용하면 함수 호출을 연쇄적으로 연결할 수 있는데, 이전 함수 호출이 반환한 값이 다음 함수 호출의 첫 번째 인자로 전달돼요.

String.replace_suffix(String.upcase(String.duplicate("go ", 3)), " ", "!")

# versus

"go "
|> String.duplicate(3)
|> String.upcase()
|> String.replace_suffix(" ", "!")

한 줄로도 사용할 수 있어요:

"go " |> String.duplicate(3) |> String.upcase() |> String.replace_suffix(" ", "!")

Kernel 함수는 보통 Kernel 모듈 이름 없이 어디서나 사용하지만, 파이프 체인에서 이런 함수를 사용할 때는 모듈 이름이 필요해요. 예를 들어 2 * 3 == 6은 다음과 같이 쓸 수도 있어요:

2 |> Kernel.*(3) |> Kernel.==(6)

파이프 연산자를 언제 사용하고 언제 사용하지 않을지는 개인의 취향이에요. 몇몇 Elixir 개발자는 다음과 같은 규칙을 따르는 걸 좋아해요:

  • 함수 호출을 한 번만 할 때는 파이프 연산자를 사용하지 마세요.

    # do
    String.split("hello", "")
    
    # don't
    "hello" |> String.split("")
    
  • 파이프 체인 안에서 익명 함수를 직접 만들지 마세요.

    # do
    take_n_letters = fn n -> Enum.take(?a..?z, n) end
    2 |> Kernel.*(3) |> take_n_letters.()
    
    # don't
    2 |> Kernel.*(3) |> (fn n -> Enum.take(?a..?z, n) end).()
    
  • 파이프 체인은 항상 함수 호출이 아니라 변수나 리터럴 값으로 시작하세요.

    # do
    "hello" |> String.upcase() |> String.split("")
    
    # don't
    String.upcase("hello") |> String.split("")
    
GitHub에서 편집 링크가 새 창이나 탭에서 열려요

파이프 연산자 배우기

연습이 잠겨 있어요

파이프 연산자 개념을 연습하려면 연습 문제 5개를 더 잠금 해제해요