Elixir의 패턴 매칭을 활용한 예시는?
_____A: 패턴 매칭은 Elixir에서 값을 구조에 맞춰 분해하거나 확인할 때 사용하는 강력한 기능입니다. 변수에 값을 할당하거나 복잡한 데이터 구조를 쉽게 분해할 수 있습니다.
Q: Elixir의 기본적인 패턴 매칭 예시는 무엇인가요?
A: 변수에 값을 할당할 때 패턴 매칭이 일어납니다.
예:
```elixir
x = 1 여기서 1이 변수 x에 할당된다.
{a, b} = {10, 20} 튜플을 분해해 a=10, b=20으로 맵핑
```
Q: 함수 매개변수에서 패턴 매칭을 어떻게 활용하나요?
A: 함수 정의 시 매개변수에 다양한 패턴을 지정해 함수의 동작을 분기할 수 있습니다.
예:
```elixir
def greet({:ok, name}), do: "Hello, {name}!"
def greet({:error, _}), do: "Error occurred."
```
Q: 리스트 패턴 매칭 예시는 어떤 것이 있나요?
A: 리스트의 첫 요소와 나머지 리스트를 분리할 때 사용됩니다.
예:
```elixir
[head | tail] = [1, 2, 3]
head = 1, tail = [2, 3]
```
Q: 조건문에서 패턴 매칭을 어떻게 사용하나요?
A: `case` 문에서 다양한 패턴을 분기하여 처리합니다.
예:
```elixir
case {:ok, "Data"} do
{:ok, value} -> "Success: {value}"
{:error, reason} -> "Failed: {reason}"
end
```
Q: 패턴 매칭을 이용해 맵(Map)을 분해하는 방법은 무엇인가요?
예:
```elixir
%{name: name} = %{name: "Elixir", version: "1.12"}
name = "Elixir"
```
Q: 패턴 매칭 실패 시 동작은 어떻게 되나요?
A: 매칭이 실패하면 `MatchError`가 발생하며, 함수에서는 다른 패턴으로 분기하지 않으면 에러가 납니다.
Q: 구조체에서 패턴 매칭을 사용하는 예시는 어떻게 되나요?
A: 구조체 필드를 이용해 패턴 매칭 가능합니다.
예:
```elixir
defmodule User do
defstruct name: "", age: 0
end
%User{name: name} = %User{name: "Alice", age: 30}
name = "Alice"
```
Q: 패턴 매칭에서 와일드카드(_)는 어떻게 사용하나요?
A: 불필요한 값을 무시할 때 `_`를 사용합니다.
예:
```elixir
{_, second} = {1, 2}
second = 2, 첫번째 값은 무시
```
Q: 패턴 매칭은 반복문이나 Enum 모듈 함수와 어떻게 결합되나요?
A: Enum 함수 내에서 익명함수 매개변수에 패턴을 활용해 데이터를 쉽게 처리할 수 있습니다.
예:
```elixir
list = [{:ok, "a"}, {:error, "b"}]
Enum.map(list, fn {:ok, val} -> val; {:error, _} -> nil end)
결과: ["a", nil]
```
작성자:
김도윤 [비회원]
| 작성일자: 1년 전
2025-01-02 06:21:46
조회수: 145 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 145 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.