함수를 사용한 패턴 일치

이봐, 개발자!

2개의 숫자를 비교하고 가장 큰 숫자를 반환해야 하는 시나리오를 상상해 보세요.

Elixir에서는 삼항if 문을 사용하여 이를 수행할 수 있습니다.

defmodule CompareNumbers do
  def the_bigger_number_is(number_01, number_02) do
    bigger_number = if number_01 > number_02, do: number_01, else: number_02

    "The number #{number_01} is greater than #{number_02}"
  end
end

number_01 = 10
number_02 = 5

IO.inspect(CompareNumbers.the_bigger_number_is(number_01, number_02))

=> "The number 10 is greater than 5"


...

또한 함수와 패턴 일치를 사용하여 흐름을 제어할 수 있습니다.

defmodule CompareNumbers do
  def the_bigger_number_is(number_01, number_02) do
    compare(number_01 > number_02, number_01, number_02)
  end

  defp compare(true, number_01, number_02) do
    "The number #{number_01} is greater than #{number_02}"
  end

  defp compare(false, number_01, number_02) do
    "The number #{number_02} is greater than #{number_01}"
  end
end

number_01 = 10
number_02 = 5

IO.inspect(CompareNumbers.the_bigger_number_is(number_01, number_02))

=> "The number 10 is greater than 5"


여기에서 동일한 이름compare을 가진 2개의 개인 함수를 만든 다음 패턴 일치를 사용하여 첫 번째 인수가 참인지 거짓인지 확인합니다.

그렇다면 위의 두 가지 접근 방식 중 어느 것이 가장 좋다고 생각하십니까? 어느 것이 가장 합리적입니까?

또는 어떻게 더 좋을 수 있습니까? 아래 댓글로 알려주세요 =D

콘택트 렌즈
이메일: [email protected]
링크드인:
트위터:

좋은 웹페이지 즐겨찾기