함수를 사용한 패턴 일치
4803 단어 tutorialwebdevelixirprogramming
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]
링크드인:
트위터:
Reference
이 문제에 관하여(함수를 사용한 패턴 일치), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/dnovais/pattern-matching-with-functions-kb9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)