선택적 매개변수
Coddy Lua 여정의 Luau 소개 섹션에 포함된 레슨. 80개 중 26번째.
일반 Lua에서는 항상 인수를 생략할 수 있었습니다. 빠진 인수는 조용히 nil이 되었고, 이를 처리하는 것을 잊는 것은 흔한 버그 원인이었습니다. Luau에서는 이 가능성을 명시적으로 표현합니다. 매개변수의 타입에 ?를 추가해 선택 사항임을 표시하세요.
function greet(name: string, title: string?): string
if title then
return `{title} {name}`
end
return `Hello, {name}`
end
print(greet("Ada")) -- 안녕하세요, Ada
print(greet("Ada", "Dr.")) -- Dr. Adastring?는 "string 또는 nil"로 읽습니다. 호출하는 쪽에서는 문자열을 전달하거나 인수를 아예 생략할 수 있습니다. ?가 없는 매개변수는 필수이며, 검사기는 이를 생략한 호출에 오류를 표시합니다.
함수 안에서 선택적 매개변수는 nil일 수 있으므로 사용하기 전에 확인해야 합니다. if title then ... end가 일반적인 패턴입니다. 확인을 생략하고 nil을 문자열에 연결하면 Lua에서 늘 발생하던 것과 같은 런타임 오류가 발생합니다. 타입 검사기는 먼저 경고해 줍니다.
챌린지
쉬움표시 이름이 선택 사항인 프로필 함수를 작성하세요.
local function createUserProfile(username: string, displayName: string?): string을 작성하세요.displayName이 주어지면`Profile: {displayName} (@{username})`을 반환하고, 그렇지 않으면`Profile: @{username}`을 반환하세요.createUserProfile("john_doe", "John Doe")와createUserProfile("jane_smith")를 출력하세요.
Run Code를 누르세요. 출력에 Profile: John Doe (@john_doe)와 Profile: @jane_smith이 표시됩니다.
직접 해보기
-- 1) createUserProfile(username: string, displayName: string?): string
-- 2) 표시 이름이 있을 때와 없을 때 각각 출력하기
Luau 소개의 모든 레슨
4함수 다루기
매개변수와 반환값의 타입 지정익명 함수의 타입 지정아무것도 반환하지 않는 함수선택적 매개변수기본 매개변수 값불리언 기본값가변 인자 함수함수 타입 정의하기복습: 타입이 지정된 함수직접 연습해 보세요: 온라인 Luau 컴파일러