Menu
Coddy logo textTech

유니온 타입

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

때로는 하나의 type만으로는 충분하지 않습니다. 사용자 id가 "user123" 또는 42로 들어올 수 있습니다. 일반적인 Lua에서는 그저 잘 되기를 바랄 뿐이지만, Luau는 union types를 제공합니다. 파이프 |는 "또는"으로 읽습니다:

local userId: number | string

userId = "user123"  -- ✓ string이 허용됩니다
userId = 42          -- ✓ number가 허용됩니다
userId = true        -- ✗ 타입 오류: boolean은 union에 없습니다

variable에는 union의 두 member 중 하나만, 그리고 오직 그중 하나만 저장할 수 있습니다. 이것이 any와의 중요한 차이점입니다. union은 허용되는 항목에 대해서는 엄격함을 유지하면서도 필요한 유연성을 제공합니다.

union은 여러 입력 형식을 허용하는 function parameter에 특히 유용합니다:

function printId(id: number | string): ()
    print(id)
end

printId(42)          -- 숫자로 작동합니다
printId("user123")   -- 문자열로 작동합니다

여러분은 이미 string?을 알고 있습니다. 그것이 여러분의 첫 번째 union이었습니다! 이는 단순히 string | nil을 줄여 쓴 표현입니다. 다음 lesson에서는 union value를 얻은 후 그것을 안전하게 다루는 방법을 함께 배워 보겠습니다.

challenge icon

챌린지

쉬움

printId라는 이름의 함수를 만들고, id: number | string을 받아 출력하세요. 명시적 반환 유형은 ()입니다.

string | number 유형의 status 변수를 선언하고, "<code>active"로 초기화하세요.

그런 다음 다음 순서대로 실행하세요:

  1. printId(42)를 호출하세요.
  2. printId("<code>user123")를 호출하세요.
  3. status를 출력하세요.
  4. status200으로 재할당하고 다시 출력하세요.

출력은 총 네 줄입니다.

직접 해보기

-- 여기에 코드를 작성하세요
-- printId(id: number | string): ()
-- local status: string | number = 지침의 정확한 텍스트
-- printId(42), printId(지침의 정확한 텍스트)를 호출하고,
-- status를 출력하고, 200으로 재할당한 뒤, 다시 출력하세요
quiz icon실력 점검

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

Luau 소개의 모든 레슨

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