유니온으로서의 문자열 Enum
Coddy Lua 여정의 Luau 소개 섹션에 포함된 레슨. 80개 중 57번째.
숫자는 로그를 알아보기 어렵게 만듭니다. 2를 봐도 알 수 있는 것이 거의 없지만, "down"을 보면 모든 것을 알 수 있습니다. 읽기 쉬운 열거형을 만들 때 Luau의 리터럴 유니온 타입을 사용할 수 있습니다. 멤버가 정확한 문자열인 타입입니다.
type Direction = "up" | "down" | "left" | "right"
local facing: Direction = "up" -- ✓
local typo: Direction = "upp" -- ✗ 편집 중 타입 오류Direction으로 주석이 달린 변수에는 이 네 가지 문자열만 담을 수 있으며, 그 밖의 값은 담을 수 없습니다. 철자를 하나라도 틀리면 검사기가 즉시 찾아내므로 버그가 플레이어에게 도달하지 않습니다.
런타임에서 값은 일반 문자열입니다. 출력하고, 연결하고, ==로 비교할 수 있습니다. 문자열에 대해 알고 있는 모든 것을 그대로 적용할 수 있습니다.
print(facing) -- up
print(`facing {facing}`) -- facing up이제 사용할 수 있는 두 가지 패턴을 비교해 보세요. 상수 테이블은 멤버를 담는 런타임 값 하나(UserRole)를 만들지만, 리터럴 유니온은 값을 전혀 만들지 않습니다. Direction 테이블은 없으며, 어떤 문자열이 적합한지 검사기가 적용하는 규칙만 있습니다. 설명이 명확하고 자체적으로 문서 역할을 하며 런타임 비용이 전혀 들지 않으므로, 리터럴 유니온은 Luau 코드에서 가장 널리 쓰이는 열거형 방식입니다.
챌린지
쉬움네 가지 이름 중 하나만 가질 수 있는 방향을 저장하세요.
type Direction = "up" | "down" | "left" | "right"를 작성하세요.local facing: Direction = "left"를 선언하세요.facing을 출력한 다음`The player moves {facing}`를 출력하세요.
코드 실행을 누르세요. 출력에 left와 The player moves left가 표시됩니다.
직접 해보기
-- 1) Direction을 네 개의 문자열로 이루어진 유니언 타입으로 정의
-- 2) local facing: Direction = "left"
-- 3) facing을 출력한 다음 문장을 출력
Luau 소개의 모든 레슨
4함수 다루기
매개변수와 반환값의 타입 지정익명 함수의 타입 지정아무것도 반환하지 않는 함수선택적 매개변수기본 매개변수 값불리언 기본값가변 인자 함수함수 타입 정의하기복습: 타입이 지정된 함수8Luau 방식의 Enum
Luau의 Enum 패턴테이블을 사용한 숫자 Enum유니온으로서의 문자열 Enum리터럴 유니온 Enum 사용하기상수 테이블 동결하기요약: Luau 방식의 Enum직접 연습해 보세요: 온라인 Luau 컴파일러