table.concat()
Часть раздела Logic & Flow путешествия по Lua на Coddy — урок 5 из 54.
Иногда вам нужно объединить все элементы таблицы в стиле списка в одну строку. Lua предоставляет функцию table.concat() специально для этой цели, что позволяет легко объединять элементы таблицы с выбранным вами разделителем.
Базовый синтаксис выглядит следующим образом:
local result = table.concat(myTable, separator)Вот простой пример со списком слов:
local words = {"Hello", "from", "Lua"}
local sentence = table.concat(words, " ")
print(sentence) -- Вывод: Hello from LuaВы также можете управлять тем, какую часть таблицы объединять, указывая начальную и конечную позиции в качестве дополнительных аргументов. Это полезно, когда вы хотите объединить только определенные элементы:
local numbers = {"1", "2", "3", "4", "5"}
local partial = table.concat(numbers, "-", 2, 4)
print(partial) -- Вывод: 2-3-4Функция table.concat() работает исключительно с таблицами в стиле списков и преобразует каждый элемент в строку перед их объединением.
Задание
ЛегкоНапишите функцию buildPath, которая принимает таблицу folders и строку separator, и возвращает единую строку пути, в которой все папки соединены разделителем.
Используйте table.concat() для объединения всех имен папок в одну строку пути.
Параметры:
folders(table): Таблица в стиле списка, содержащая имена папок в виде строкseparator(string): Символ или строка, используемая между именами папок (например,"/"или"\\")
Возвращает: Единую строку со всеми папками, соединенными разделителем (string)
Шпаргалка
Функция table.concat() объединяет все элементы таблицы списочного типа в одну строку с использованием разделителя:
local result = table.concat(myTable, separator)Базовый пример:
local words = {"Hello", "from", "Lua"}
local sentence = table.concat(words, " ")
print(sentence) -- Output: Hello from LuaВы можете указать начальную и конечную позиции, чтобы объединить только определенные элементы:
local numbers = {"1", "2", "3", "4", "5"}
local partial = table.concat(numbers, "-", 2, 4)
print(partial) -- Output: 2-3-4Функция работает исключительно с таблицами списочного типа и преобразует каждый элемент в строку перед объединением.
Попробуйте сами
function buildPath(folders, separator)
-- Напишите код здесь
end
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Logic & Flow
1Продвинутая итерация таблиц
Итерация с помощью pairs()Итерация с помощью ipairs()pairs() против ipairs()Повторение — Лист персонажа2Дополнительные функции библиотеки table
table.concat()Создание таблиц и unpack()table.sort()Пользовательская сортировка с помощью функцийИтоги — Таблица рекордов