Menu
CoddyTech

Значения параметров по умолчанию

Часть раздела Введение в Luau путешествия по Lua на Coddy. Урок 27 из 80.

Необязательные параметры оставляют вам nil, с которым нужно работать. Часто вам на самом деле нужно резервное значение: «если вызывающий код ничего не указал, предположить X». В Luau нет синтаксиса значения по умолчанию в сигнатуре (нет greeting: string = "Hello"); вместо этого используется классический идиоматичный приём Lua, теперь с типами:

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 — ложное значение: nil or "Hello" вычисляется как "Hello". После этой строки проверяющая система знает, что greeting больше не может быть nil.

challenge icon

Задание

Легко

Задайте необязательному параметру значение по умолчанию.

  1. Напишите local function calculateTax(price: number, rate: number?): number.
  2. Его первая строка — rate = rate or 0.05; затем верните price * rate.
  3. Выведите calculateTax(100) и calculateTax(200, 0.08).

Нажмите Run Code: вывод покажет 5, затем 16.

Попробуйте сами

-- 1) calculateTax(price: number, rate: number?): number
--    значение rate по умолчанию — 0.05; используйте приём с `or`
-- 2) выведите calculateTax(100) и calculateTax(200, 0.08)

Все уроки раздела Введение в Luau

Потренируйтесь самостоятельно: Онлайн-компилятор Luau