Podemos combinar funções anônimas e a simulação de struct em Lua para usar ponteiros para função em structs.
O assunto ponteiro em C pode ser visto em Ponteiros em C.
Sintaxe
local nome_variavel = {
membro1 = nome_funcao
}
Exemplo 3
function funcao_qualquer(param)
return param*2;
end
local var1 = {
id=1,
nome="Shinjuku",
funcao = funcao_qualquer --ponteiro p/ função
}
print(var1.id,var1.nome,var1.funcao(2))
Saída
4
O uso de "struct" como parâmetro e retorno é feita da mesma forma como outros tipos de dados já vistos.
Sintaxe
nome_funcao(nome_variavel_struct)
nome_funcao(parametros)
return nome_variavel_struct
end
Exemplo 4
local var1 = {
id=1,
nome="Shinjuku",
}
function funcao1(param)
print(param.id,param.nome)
end
function funcao2()
local var1 = { id=1, nome="Shinjuku"}
return var1
end
funcao1(var1)
retorno = funcao2()
print(retorno.id,retorno.nome)
Saída
1 Shinjuku
1 Shinjuku