상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - Elixir의 패턴 매칭을 활용한 예시는?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
Elixir는 함수형 프로그래밍 언어로, 패턴 매칭(Pattern Matching)을 핵심 개념으로 사용합니다. 패턴 매칭은 변수에 값을 할당할 때, 그 값의 구조를 기반으로 변수를 바인딩하는 강력한 기능입니다. 이를 통해 코드의 가독성을 높이고, 복잡한 조건문을 간결하게 표현할 수 있습니다. 아래에서는 Elixir의 패턴 매칭을 활용한 다양한 예시를 소개하겠습니다. 1. 기본적인 패턴 매칭 Elixir에서 가장 기본적인 패턴 매칭은 변수에 값을 할당하는 것입니다. 예를 들어: ```elixir x = 1 y = 2 sum = x + y ``` 위 코드는 `x`와 `y`에 각각 1과 2를 할당하고, `sum`에 두 값을 더한 결과를 저장합니다. 하지만 패턴 매칭을 사용하면 다음과 같이 쓸 수 있습니다: ```elixir {x, y} = {1, 2} sum = x + y ``` 여기서 `{x, y}`는 <a href='https://sangseek.com/sangseeks/튜플/ko'>튜플</a> 패턴으로, `{1, 2}` 튜플의 값을 각각 `x`와 `y`에 바인딩합니다. 2. 함수의 인자 패턴 매칭 Elixir에서는 함수의 인자에 패턴 매칭을 사용할 수 있습니다. 예를 들어, 다음과 같은 함수를 정의할 수 있습니다: ```elixir defmodule Math do def add({a, b}) do a + b end end result = Math.add({3, 4}) result는 7이 됩니다. ``` 위의 `add` 함수는 튜플을 인자로 받아서, 튜플의 각 요소를 `a`와 `b`에 바인딩한 후 두 값을 더합니다. 3. 리스트와 패턴 매칭 리스트에서도 패턴 매칭을 사용할 수 있습니다. 예를 들어, 리스트의 첫 번째 요소와 나머지 요소를 분리할 수 있습니다: ```elixir list = [1, 2, 3, 4] [head | tail] = list head는 1, tail은 [2, 3, 4]가 됩니다. ``` 위의 예제에서 `head`는 리스트의 첫 번째 요소에 바인딩되고, `tail`은 나머지 요소들로 구성된 리스트에 바인딩됩니다. 4. 조건부 패턴 매칭 Elixir에서는 패턴 매칭과 함께 조건부를 사용할 수 있습니다. 예를 들어, 다음과 같은 함수를 정의할 수 있습니다: ```elixir defmodule Example do def describe_age(age) when age < 18 do "You are a minor." end def describe_age(age) when age >= 18 do "You are an adult." end end Example.describe_age(15) "You are a minor." Example.describe_age(20) "You are an adult." ``` 위의 예제에서 `describe_age` 함수는 나이에 따라 다른 메시지를 반환합니다. `when` 절을 사용하여 조건을 추가할 수 있습니다. 5. 중첩된 패턴 매칭 Elixir에서는 중첩된 <a href='https://sangseek.com/sangseeks/구조체/ko'>구조체</a>에서도 패턴 매칭을 사용할 수 있습니다. 예를 들어, 다음과 같은 구조체가 있다고 가정해 보겠습니다: ```elixir defmodule User do defstruct name: "", age: 0 end user = %User{name: "Alice", age: 30} %User{name: user_name, age: user_age} = user user_name은 "Alice", user_age는 30이 됩니다. ``` 위의 예제에서 `%User{name: user_name, age: user_age}` 패턴을 사용하여 `user` 구조체의 필드에 접근하고, 각각의 필드 값을 변수에 바인딩합니다. 6. 패턴 매칭을 활용한 재귀 재귀 함수에서도 패턴 매칭을 활용할 수 있습니다. 예를 들어, 리스트의 합을 구하는 함수를 작성할 수 있습니다: ```elixir defmodule ListUtils do def sum([]), do: 0 def sum([head | tail]), do: head + sum(tail) end ListUtils.sum([1, 2, 3, 4]) 10 ``` 위의 예제에서 `sum` 함수는 빈 리스트일 경우 0을 반환하고, 리스트의 첫 번째 요소와 나머지 요소의 합을 재귀적으로 계산합니다. 결론 Elixir의 패턴 매칭은 코드의 가독성을 높이고, 복잡한 로직을 간결하게 표현할 수 있는 강력한 도구입니다. 다양한 데이터 구조에 대해 패턴 매칭을 활용함으로써, 더 직관적이고 유지보수가 용이한 코드를 작성할 수 있습니다. 이러한 특성 덕분에 Elixir는 함수형 프로그래밍의 장점을 잘 살리고 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기