"Срез" вложенной таблицы на определённом уровне «башни» из таблиц множественно вложенных в глубину (сами в себя)? Подскажите почему при построении "башни" из таблиц (без явных ключей) в глубину, "срезать" таблицу на определённом уровне можно так: (не забываем про теорию - в луа переменные содержат ссылки на таблицы, а не копии таблиц!)local t = {{{{{}}}}} -- 4 вложенных
local g = t
local tst = t[1][1][1]
print(t[1][1][1][1]) -- table:
t[1][1] = t[1][1][1]
print(t[1][1] == tst, t[1][1][1][1] ) -- true, nil срезалась и "хвост" подтянула!
-- А так нельзя
print( t[1][1][1][1] ) -- table:
local a = t[1][1]
local b = t[1][1][1]
a = b
print( t[1][1][1][1] ) -- table: хвост не подтянут!
print( t[1][1] == g[1][1], t[1][1]== tst) -- true, false
-- и срез не произошёл! Проверим ещ переменные:
print( a == g[1][1], b == g[1][1], a==b) -- false, false, true
print(a == g[1][1][1], b == g[1][1[1]]) -- true, true
print(a == t[1][1][1], b == t[1][1[1]]) -- true, true
print(t==g) -- true
Как можно программно реализовать правильный срез таблицы из "башни", если вложенную таблицу на определённом уровне я получаю циклом:local pred = t
while (pred) do
pred = pred[1]
if pred == t[1][1] then
pred = pred[1] -- не работает так. см 2 пример
end
end

21 Авг 2019 в 06:20
140 +1
0
Ответы
Нет ответов
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 82 994 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир