Немного путают все это; так вот что я пытаюсь сделать! Есть размораживание таким образом:Как передать функцию в качестве параметра в Lua?
block_basic_DEF =
{
image = "button.png",
name = "basic block",
obj_table = this_obj_table.common_objects_table,
startup = function() init(), <----- This is the problem
}
В другом файле я доступа, как можно было бы ожидать с:
function spawn(params)
local obj = display.newImage(params.image)
-- etc.
В этом block_basic_DEF
я хотел бы передать адрес функции init()
таким образом, что в моей икре я может сделать что-то вроде:
params.startup()
--ie на самом деле вызывать исходную функцию init
Я из фона C, где это было всего лишь указателями на указатели, но это плохой язык в мире ООП, по-видимому !!! функции :-))
Приветствия
"* Иметь размораживание таким образом *" Это не "DEF". У Lua нет «определений». Это * таблица *, которая является * значением *. Также как функции. –
'params.startup()' фактически обрабатывает значение, на которое ссылается 'params' как таблица, и индексирует его с помощью строки' startup', чтобы получить ее значение (оператор точки). Затем он вызывает значение как функцию (оператор скобок). Эта функция затем вызывает значение, на которое ссылается 'init' как функция. –