Menu
Coddy logo textTech

기본 매개변수 값

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

옵션 매개변수는 처리해야 할 nil을 남겨둡니다. 보통 당신이 정말로 원하는 것은 기본값(fallback value)입니다 — "호출자가 지정하지 않았다면, X로 간주하라". Luau 시그니처에는 기본값 문법이 없습니다 (greeting: string = "Hello"와 같은 구문이 없음); 대신 타입 지정과 함께 클래식 Lua idiom을 사용합니다:

function greet(name: string, greeting: string?): string
    greeting = greeting or "Hello"
    return `{greeting}, {name}`
end

print(greet("Alice"))            -- 안녕, 앨리스
print(greet("Alice", "Howdy"))   -- 안녕, 앨리스

매개변수는 옵션으로 어노테이션되고 (string?), 본문의 첫 번째 줄은 nil을 기본값으로 대체합니다. nil이 거짓(falsy)이기 때문에 이 작업이 동작합니다 — nil or "Hello""Hello"로 평가됩니다. 이 줄 이후에 체커는 greeting이 더 이상 nil이 될 수 없음을 알게 됩니다.

Lua에서 알고 있는 한 가지 주의사항: orfalse도 대체합니다! boolean? 매개변수의 경우, flag = flag or trueexplicit false를 암묵적으로 덮어씁니다. 대신 explicit nil-check를 사용하세요:

function ship(weight: number, expedited: boolean?): number
    if expedited == nil then
        expedited = false
    end
    -- ...
end
challenge icon

챌린지

쉬움

price: number(필수)와 기본값이 0.05rate: number?를 받는 calculateTax라는 이름의 함수를 만드세요. 세금 금액(price * rate)을 number로 반환하세요.

name: string(필수)와 기본값이 "Hello"timeOfDay: string?를 받는 formatGreeting이라는 이름의 함수를 만드세요. "[timeOfDay], [name]!" 형태의 string으로 반환하세요.

weight: number, distance: number(둘 다 필수) 및 기본값이 falseexpedited: boolean?를 받는 calculateShipping이라는 이름의 함수를 만드세요 — 이 함수에는 명시적인 nil 검사를 사용하세요! (weight * 0.5) + (distance * 0.1)를 계산하고, expedited가 참이면 결과에 2를 곱하세요. number를 반환하세요.

각각 한 줄씩 호출하고 출력하세요:

  1. calculateTax(100)
  2. calculateTax(200, 0.08)
  3. formatGreeting("Alice")
  4. formatGreeting("Bob", "Good morning")
  5. calculateShipping(5, 100)
  6. calculateShipping(3, 50, true)

직접 해보기

-- 여기에 코드를 작성하세요
-- calculateTax(price: number, rate: number?) -- 기본 rate 0.05
-- formatGreeting(name: string, timeOfDay: string?) -- 기본 "Hello"
-- calculateShipping(weight, distance, expedited: boolean?) -- 기본 false
-- 그런 다음 여섯 개의 결과를 출력하세요
quiz icon실력 점검

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

Luau 소개의 모든 레슨