Menu
CoddyTech

table.unpack

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

Иногда в массиве есть значения, но нужны они вам как отдельные значения: например, чтобы передать каждый элемент как отдельный аргумент. Для этого служит table.unpack: она возвращает все элементы массива по отдельности.

local scores: {number} = {85, 92, 78}
print(table.unpack(scores))           -- 85  92  78 (в одной строке)
print(math.max(table.unpack(scores))) -- 92

print получает три аргумента, поэтому выводит их в одной строке, разделяя табуляцией. math.max принимает отдельные числа, а не массив, поэтому распаковка позволяет этому вызову работать.

table.unpack читает массив, не изменяя его. Обратный вариант — функция, которая принимает любое количество аргументов с помощью ..., рассматривается в уроке «Функции с переменным числом аргументов» следующей главы.

challenge icon

Задание

Легко

Разверните массив оценок в отдельные значения.

  1. Объявите local scores: {number} = {64, 88, 71}.
  2. Выведите table.unpack(scores).
  3. Выведите math.max(table.unpack(scores)).

Нажмите Run Code: в выводе на одной строке отображается 64 88 71, а затем 88.

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

-- 1) объявите scores: {number} = {64, 88, 71}
-- 2) выведите распакованные scores, затем их math.max

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

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