혼합 형태 테이블
Coddy Lua 여정의 Luau 소개 섹션에 포함된 레슨 — 73개 중 18번째.
배열은 한 가지 타입의 여러 값을 보유하고, 맵은 하나의 키 타입과 하나의 값 타입을 보유합니다.하지만 가장 흔한 Lua 테이블은 이름이 지정된 필드(named field) 아래에 여러 타입을 섞어서 사용합니다. 예를 들어 string 타입의 name, number 타입의 score, boolean 타입의 flag를 가진 player와 같습니다. Luau는 이러한 테이블을 shape로 타입 지정합니다. 즉, 각 field와 그 자체의 type을 나열하는 테이블 타입입니다.
type Point = {x: number, y: number}
local origin: Point = {x = 0, y = 0}
print(origin.x)type 키워드는 타입 별칭(type alias)을 생성합니다. 이는 shape에 사용할 수 있는 재사용 가능한 이름입니다. 이는 검사기(checker)를 위해서만 존재하며, Point라는 이름의 런타임 값은 생성되지 않습니다. 필드는 각각 서로 다른 타입을 가질 수 있습니다:
type Player = {name: string, score: number, active: boolean}
local player: Player = {name = "Rio", score = 1500, active = true}
print(`{player.name} has {player.score} points`)shape가 선언되면, 검사기는 player.score가 number라는 것을 알게 되고 오타(예: 존재하지 않는 필드인 player.scroe)나 player.score = "high"와 같은 잘못된 타입 할당과 같은 실수를 초기에 감지해 냅니다. 이것은 맛보기에 불과하며, 나중 장에서 shape, 선택적 필드, 메서드에 대해 훨씬 더 깊이 다룰 것입니다.
챌린지
쉬움세 개의 필드(name: string, score: number, active: boolean)를 가진 테이블 형태(shape)에 대한 타입 별칭 Player를 정의하세요.
name은 "Rio", score는 1500, active는 true로 설정하여 local player: Player를 생성하세요.
각각 별도의 줄에 다음을 출력하세요:
- 플레이어의 이름 (name)
- 플레이어의 점수 (score)
- 플레이어의 active 플래그
- 필드들로부터 문자열 보간법(string interpolation)을 사용하여 작성한 정확한 문자열
Rio has 1500 points
직접 해보기
-- 여기에 코드를 작성하세요
-- 1) 타입 Player = {name: string, score: number, active: boolean}
-- 2) player 생성: Player = {name = "Rio", score = 1500, active = true}
-- 3) name, score, active를 출력한 다음, 보간된 요약 줄을 출력하세요
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.