сложный вопрос

четыреста четыре

Известный
Автор темы
120
21
Версия MoonLoader
.026-beta
Lua:
--Как заместо вывода состояния state вывело само название  переменной "state"
local table =  {state}

print(table[1]) -- заместо вывода "nil" должно вывести state, то есть как было бы со
--local table = {"state"}  надеюсь понятно объяснил свой вопрос
 

Rice.

Известный
Модератор
1,753
1,660
Lua:
--Как заместо вывода состояния state вывело само название  переменной "state"
local table =  {state}

print(table[1]) -- заместо вывода "nil" должно вывести state, то есть как было бы со
--local table = {"state"}  надеюсь понятно объяснил свой вопрос
Нельзя вывести переменную, которой не существует. Поэтому и выводит "nil".
Единственный вариант:
Lua:
local state = 'Hello'
local table = {state}

print(table[1])

Либо:
Lua:
local table = {'state'}

print(table[1])
 

Andrinall

Известный
700
518
Lua:
--Как заместо вывода состояния state вывело само название  переменной "state"
local table =  {state}

print(table[1]) -- заместо вывода "nil" должно вывести state, то есть как было бы со
--local table = {"state"}  надеюсь понятно объяснил свой вопрос
Можно сделать так, но выводить будет только те ячейки, которые НЕ равны nil

Можно прикрутить сюда итерации и вывести в отдельную функцию, где аргументом будет номер, который ты изначально указываешь в print(table[1])
На нём будет останавливаться цикл и выводить имя ячейки под этим номером или возвращать nil, если её нет
Можно туда же прикрутить проверку, что возвращаемое значение состоит из латинских символов и т.д.
Всё ограничивается твоей фантазией.
Lua:
local test = { state = 1, test = 2 }
for i in pairs(test) do
    print(i)
end

И да, если в таблице будет простая нумерованная ячейка local test = { [1] = 'test', state = 1, test = 2 }
то её тоже выведет, а т.к. берётся только "индекс", то выведет номер ячейки, в данном случае 1.
 
Последнее редактирование: