리터럴 타입
Coddy Lua 여정의 Luau 소개 섹션에 포함된 레슨. 80개 중 35번째.
string 같은 타입은 어떤 문자열이든 허용하지만, 때로는 몇 가지 정확한 값만 의미가 있습니다. 리터럴 타입은 값 자체를 타입으로 사용합니다.
local mode: "dark" = "dark" -- 문자열 "dark"만 허용됩니다
local locked: true = true -- 불리언 값 true만 허용됩니다단일 값 타입은 그 자체로는 특이한 개념일 뿐입니다. 하지만 유니온과 결합하면 Luau에서 가장 유용한 도구 중 하나가 됩니다. 즉, 허용되는 값을 엄격하게 제한할 수 있습니다.
type Direction = "north" | "south" | "east" | "west"
type GameState = "menu" | "playing" | "paused" | "gameover"
local move: Direction = "north" -- ✓
local state: GameState = "playing" -- ✓
-- local bad: Direction = "diagonal" -- ✗ 타입 오류!이제 "nort" 같은 오타나 "diagonal" 같은 유효하지 않은 값은 편집하는 동안 잡힙니다. 일반 string 타입이라면 그대로 통과해 런타임에 오류를 일으킬 수 있으며, 운이 좋아서 알아차린다면 말입니다.
리터럴 타입은 대소문자를 구분하며 정확히 일치해야 합니다. "North"는 "north"와 일치하지 않습니다. 문자열 리터럴이 가장 흔하지만, 불리언 리터럴과 (최신 Luau 버전에서는) 숫자 리터럴도 같은 방식으로 작동합니다. 문자열 리터럴의 유니온인 이 패턴은 Luau가 다른 언어의 열거형을 대체하는 방식이기도 합니다. 이 내용은 뒤의 장에서 살펴보겠습니다.
챌린지
쉬움정확한 방향 이름 네 개만 허용하세요.
type Direction = "north" | "south" | "east" | "west"를 작성하세요.local function movePlayer(direction: Direction): string을 작성하고`Moving {direction}`을 반환하세요.local playerDirection: Direction = "east"를 선언하고movePlayer(playerDirection)을 출력하세요.
Run Code를 누르세요. 출력에는 Moving east가 표시됩니다.
직접 해보기
-- 1) type Direction = "north" | "south" | "east" | "west"
-- 2) movePlayer(direction: Direction): string
-- 3) local playerDirection: Direction = "east", 그런 다음 이동 결과를 출력
Luau 소개의 모든 레슨
4함수 다루기
매개변수와 반환값의 타입 지정익명 함수의 타입 지정아무것도 반환하지 않는 함수선택적 매개변수기본 매개변수 값불리언 기본값가변 인자 함수함수 타입 정의하기복습: 타입이 지정된 함수직접 연습해 보세요: 온라인 Luau 컴파일러