Menu
CoddyTech

인라인 셰이프 어노테이션

Coddy Lua 여정의 Luau 소개 섹션에 포함된 레슨. 80개 중 39번째.

Lua에서는 오랫동안 테이블을 레코드로 사용해 왔습니다. local user = {name = "Ana", age = 20}처럼요. 필드 이름을 잘못 쓰거나, 필드를 빠뜨리거나, 숫자가 들어가야 할 곳에 문자열을 저장하는 것을 막아 주는 것은 아무것도 없습니다. 코드가 실행되고 나서야 문제를 알게 됩니다.

Luau에서는 중괄호 안에 각 필드와 그 타입을 나열하여 선언할 때 테이블의 형태를 바로 설명할 수 있습니다.

local user: {name: string, age: number} = {
    name = "Ana",
    age = 20,
}

이미 알고 있는 테이블 타입과 비교해 보세요. {number}는 배열을 설명하고 {[string]: number}는 임의의 문자열 키를 가진 맵을 설명합니다. 형태는 더 정확합니다. 각 필드의 이름을 하나씩 지정하고 각 필드에 고유한 타입을 부여합니다.

형태를 선언하면 편집하는 동안 타입 검사기가 테이블이 그 형태에 맞는지 확인합니다. 필드가 빠졌거나 값의 타입이 잘못되면 코드가 실행되기도 전에 표시됩니다.

local user: {name: string, age: number} = {
    name = "Ana",
    age = "twenty", -- ✗ 타입 오류: string은 number가 아닙니다
}

언제나 그렇듯이, 타입 주석은 런타임 동작을 추가하지 않습니다. 테이블은 일반 Lua 테이블입니다. 인라인 형태는 재사용할 계획이 없는 일회성 구조에 적합합니다. 다음 레슨에서는 형태에 이름을 붙여 보겠습니다.

challenge icon

챌린지

쉬움

선언할 때 학생 레코드를 바로 설명하세요.

  1. local student: {name: string, studentId: number} = {name = "Sarah Johnson", studentId = 12345}를 선언하세요.
  2. student.name을 출력한 다음 student.studentId를 출력하세요.

코드 실행을 누르세요. 출력에 Sarah Johnson와 12345가 표시됩니다.

직접 해보기

-- 1) 인라인 구조 어노테이션을 사용해 student를 선언합니다
-- 2) student의 name을 출력한 다음 studentId를 출력합니다

Luau 소개의 모든 레슨

직접 연습해 보세요: 온라인 Luau 컴파일러