Trochę zdezorientowany tym wszystkim; więc oto, co próbuję zrobić! Mają def tak:Jak przekazać funkcję jako parametr w 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
}
w innym pliku mam dostępu, jak można by się spodziewać z:
function spawn(params)
local obj = display.newImage(params.image)
-- etc.
W tym block_basic_DEF
pragnę przekazać adres funkcji init()
taka, że w moim tarło I może zrobić coś takiego:
params.startup()
--ie tak naprawdę wywołuję oryginalną funkcję init
Pochodzę z tła C, w którym to były tylko wskaźniki do wskaźników, ale to jest zły język w świecie OOP pozornie !!! Funkcje :-))
Cheers
"* Mają więc def *" To nie jest "def". Lua nie ma "definicji". To jest * tabela *, która jest * wartością *. Podobnie jak funkcje. –
'params.startup()' faktycznie traktuje wartość przywoływaną przez 'params' jako tabelę i indeksuje ją za pomocą ciągu' startup', aby uzyskać jego wartość (operator kropki). Następnie wywołuje wartość jako funkcję (operator nawiasów). Funkcja ta wywołuje następnie wartość, do której odwołuje się funkcja "init". –