2016-09-08 2 views
2
неудачу

Учитывая этот код:Lua LoadString Функция

local fruit = {} 
fruit.name = "Bramley" 
loadstring("fruit.pips = '2'") 
fruit.skinc = 'Red' 
print(fruit) 

Почему не являются пипсов добавляемых в таблицу: таблицы

'fruit'{ 
    'name'='Bramley', 
    'skinc'='Red' 
} 

ответ

3

loadstring() (или load() в Lua 5.2 или выше) возвращает функции, вы должны запустить эту функцию для выполнения кода. Как это:

fruit = {} 
fruit.name = "Bramley" 
loadstring("fruit.pips = '2'")() 

Обратите внимание, что fruit должен быть глобальным, или ошибка будет генерироваться, потому что среда возвращаемой функции loadstring является глобальной окружающей среды.

+0

спасибо! Я попробовал дополнительную() ошибку, по-моему, что плод был локальной переменной. Большое спасибо за сжатый, судебный ответ - зная мою ошибку, если я не покажу ее! – MrB

Смежные вопросы