Zig Academy · 강의

태그가 있는 유니언과 switch

유니언 변형에 대해 패턴 매칭을 수행합니다.

레슨 3/413개 단계

태그가 있는 유니언과 switch은(는) CoddyKit의 무료 Zig Academy 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Zig Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Zig Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

변형 기억하기

일반 공용체는 어떤 필드가 활성 상태인지 잊습니다. 태그가 있는 공용체는 현재 변형을 기록하는 열거형 태그와 값을 함께 저장합니다.

태그가 있는 공용체 선언

union(enum)을 작성하면 Zig가 각 필드에 하나씩 대응하는 태그 이름을 자동으로 생성합니다.

const Value = union(enum) { int: i64, text: []const u8 };

태그가 필드를 추적합니다

이제 값이 .int나 .text처럼 자체 태그를 가집니다. 공용체는 현재 어떤 변형을 가지고 있는지 항상 알 수 있습니다.

var v = Value{ .int = 7 };

변형을 switch로 처리하기

태그가 있는 공용체에서 변형에 따라 분기하려면 switch를 사용합니다. 각 분기에서는 태그 하나를 지정하고 해당 값의 형태를 처리합니다.

switch (v) { .int => {}, .text => {} }

페이로드 캡처하기

세로 막대를 사용한 캡처를 추가하면 활성 필드의 내부 값을 꺼내 해당 분기 안에서 바로 사용할 수 있습니다.

switch (v) { .int => |n| useInt(n), .text => |s| useText(s) }

모든 경우를 처리하도록 강제됩니다

Zig는 모든 변형을 처리하도록 요구합니다. 분기 하나를 빠뜨리면 컴파일러가 이를 알려 주므로 어떤 변형도 조용히 누락되지 않습니다.

else 분기

나머지를 한 곳에서 처리하려면 else 분기를 추가하여 명시적으로 나열하지 않은 모든 변형을 처리합니다.

switch (v) { .int => |n| useInt(n), else => {} }

switch는 표현식입니다

switch는 값을 생성할 수 있으므로 각 분기는 무언가를 반환합니다. 전체 switch의 결과를 한 단계에서 변수에 할당할 수 있습니다.

const kind = switch (v) { .int => 1, .text => 2 };

캡처를 통해 변경하기

공용체에서 값을 복사해 꺼내지 않고 페이로드를 직접 변경하려면 |*field|처럼 포인터로 캡처합니다.

switch (v) { .int => |*n| n.* += 1, else => {} }

타입 안전한 합 타입

태그가 있는 공용체는 Zig의 안전한 합 타입입니다. 하나의 값이 여러 형태를 가질 수 있고, 컴파일러가 모든 경우를 빠짐없이 처리했는지 확인하는 switch를 사용합니다.

구문 분석기와 상태에 적합합니다

이 패턴은 토큰, AST 노드, 상태 기계에 특히 잘 맞습니다. 각 경우를 한 번씩 모델링하고 switch가 로직을 분배하게 하세요.

빠른 확인

union(enum)을 작성하면 일반 공용체에 비해 무엇을 얻을 수 있습니까?

복습

태그가 있는 공용체를 배웠습니다. union(enum)은 활성 변형을 추적합니다. switch로 변형을 처리하고, 막대로 페이로드를 캡처하면 컴파일러가 모든 경우를 처리하도록 강제합니다. 🧩

무료로 시작

AI 튜터와 함께 Zig을(를) 배우세요 — 무료

브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.

코스
30
레슨
120

자주 묻는 질문

“태그가 있는 유니언과 switch” 강의는 무료인가요?

네 — “태그가 있는 유니언과 switch” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Zig Academy 강의 전체를 잠금 해제할 수 있습니다. Zig Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“태그가 있는 유니언과 switch”에서 뭘 배우나요?

유니언 변형에 대해 패턴 매칭을 수행합니다. 브라우저에서 직접 실행하는 실습 코드로 Zig Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Zig Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Zig Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.

“태그가 있는 유니언과 switch” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Zig Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Zig Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 고정된 값 집합을 위한 열거형
  2. 여러 타입 중 하나를 담는 유니언
  3. 태그가 있는 유니언과 switch
  4. 열거형 메서드와 기반 정수
← Zig Academy(으)로 돌아가기