인라인 셰이프 어노테이션
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 테이블입니다. 인라인 형태는 재사용할 계획이 없는 일회성 구조에 적합합니다. 다음 레슨에서는 형태에 이름을 붙여 보겠습니다.
챌린지
쉬움선언할 때 학생 레코드를 바로 설명하세요.
local student: {name: string, studentId: number} = {name = "Sarah Johnson", studentId = 12345}를 선언하세요.student.name을 출력한 다음student.studentId를 출력하세요.
코드 실행을 누르세요. 출력에 Sarah Johnson와 12345가 표시됩니다.
직접 해보기
-- 1) 인라인 구조 어노테이션을 사용해 student를 선언합니다
-- 2) student의 name을 출력한 다음 studentId를 출력합니다
Luau 소개의 모든 레슨
4함수 다루기
매개변수와 반환값의 타입 지정익명 함수의 타입 지정아무것도 반환하지 않는 함수선택적 매개변수기본 매개변수 값불리언 기본값가변 인자 함수함수 타입 정의하기복습: 타입이 지정된 함수직접 연습해 보세요: 온라인 Luau 컴파일러