Menu
CoddyTech

불리언 기본값

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

Lua에서 알고 있는 한 가지 주의 사항이 있습니다. or는 false도 대체합니다. 기본값이 true여야 하는 boolean? 매개변수에 flag = flag or true를 사용하면, 명시적으로 전달된 false가 true로 바뀝니다. false or true의 결과가 true이기 때문입니다.

local function sendAlert(message: string, loud: boolean?)
    loud = loud or true   -- sendAlert("Hi", false)도 여전히 true가 됩니다
    print(message, loud)
end

대신 명시적으로 nil인지 확인하세요. 인수가 생략된 경우에만 기본값을 설정합니다.

local function sendAlert(message: string, loud: boolean?)
    if loud == nil then
        loud = true
    end
    print(message, loud)
end

sendAlert("Hi")         -- Hi  true
sendAlert("Hi", false)  -- Hi  false

문자열과 숫자에는 or를 안전하게 사용할 수 있습니다. falsy한 값은 nil과 false뿐이기 때문입니다.

challenge icon

챌린지

쉬움

불리언 매개변수의 기본값을 true로 지정하여 false로 되돌릴 수 없게 하세요.

  1. local function shippingCost(weight: number, insured: boolean?): number를 작성하세요.
  2. 다음 코드로 시작하세요: if insured == nil then insured = true end.
  3. insured가 true이면 weight * 0.5 + 2를 반환하고, 그렇지 않으면 weight * 0.5를 반환하세요.
  4. shippingCost(4)와 shippingCost(4, false)를 출력하세요.

코드 실행을 누르세요. 출력은 4와 2로 끝납니다.

직접 해보기

-- `or` 관용구를 사용한 기본값 설정
local function calculateTax(price: number, rate: number?): number
    rate = rate or 0.05
    return price * rate
end

print(calculateTax(100))
print(calculateTax(200, 0.08))

Luau 소개의 모든 레슨

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