Menu
Coddy logo textTech

인라인 셰이프 어노테이션

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

Lua에서 지금까지 오랫동안 레코드local user = {name = "Ana", age = 20} 같은 table을 사용해 왔습니다. 필드의 철자를 잘못 입력하거나, 필드 하나를 빠뜨리거나, number가 들어가야 할 곳에 string을 저장하는 것을 막을 수 있는 것은 없습니다. 코드가 실행될 때까지는 이를 알 수 없습니다.

Luau를 사용하면 선언에서 바로 이러한 shape을 설명할 수 있습니다. 중괄호 사이에 각 필드와 해당 타입을 나열하면 됩니다.

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

이미 알고 있는 table 타입과 비교해 보세요. {number}는 배열을 설명하고 {[string]: number}는 임의의 string 키를 가진 맵을 설명합니다. shape은 더 정확합니다. 각 필드의 이름을 개별적으로 지정하고 모든 필드에 고유한 타입을 부여합니다.

shape이 선언되면 편집하는 동안 타입 검사기가 그에 맞춰 table을 확인합니다. 필드가 누락되었거나 값의 타입이 잘못된 경우 코드가 실행되기도 전에 표시됩니다.

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

항상 그렇듯이 annotation은 런타임 동작을 추가하지 않습니다. table은 일반적인 Lua table입니다. inline shape은 재사용할 계획이 없는 일회성 구조에 적합합니다. 다음 레슨에서는 shape에 이름을 부여해 보겠습니다.

challenge icon

챌린지

쉬움

인라인 shape annotation을 사용하여 다음을 선언하는 student라는 이름의 변수를 생성하세요.

  • namestring 타입
  • studentIdnumber 타입
  • isEnrolledboolean 타입

name은 "Sarah Johnson", studentId는 12345, isEnrolled는 true로 초기화하세요.

인라인 shape annotation을 사용하여 다음을 선언하는 course라는 이름의 두 번째 변수를 생성하세요.

  • titlestring 타입
  • creditsnumber 타입
  • instructorstring 타입

title은 "Introduction to Luau", credits는 3, instructor는 "Dr. Smith"로 초기화하세요.

각 항목을 한 줄씩 출력하세요.

  1. student의 이름
  2. student의 ID
  3. course의 제목
  4. credits의 수

직접 해보기

-- 여기에 코드를 작성하세요
-- 1) 인라인 shape 어노테이션으로 student 선언
-- 2) 인라인 shape 어노테이션으로 course 선언
-- 3) 요청된 네 개의 필드를 출력
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

Luau 소개의 모든 레슨

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