2015-10-07 1 views
1

Я хочу для поиска ссылки функции, путем его имени в виде строки:Получить Lua ссылки на функцию по имени

function someFunc(a) print(a*2) end 

-- I want to do something like this (I know this isn't working) 
ref = _G['someFunc'] 

someFunc объявлен как глобальная функция, прежде чем мой сценарий называется.

Я знаю простой способ это сделать:

ref = someFunc 

... но это не то, что я хочу. Мне нужно найти функцию с помощью строки.

+2

Почему вы думаете, 'исх = _G [ 'SomeFunc'] 'не работает? –

+0

Я экспериментировал с прямой консолью ZeroBrain Studio, и она там не работала. Он работал на другой консоли Lua. –

ответ

0

Вы должны делать что-то не так:

Lua 5.3.1 Copyright (C) 1994-2015 Lua.org, PUC-Rio 
> function someFunc(a) print(a*2) end 
> for key,value in pairs(_G) do print(key,value) end 
type function: 0x1b8c280 
rawget function: 0x41bc70 
rawlen function: 0x41bcc0 
tonumber  function: 0x41b990 
_VERSION  Lua 5.3 
_G  table: 0x1b8a9f0 
coroutine  table: 0x1b8a7e0 
load function: 0x41c3b0 
select function: 0x41b890 
debug table: 0x1b8cf60 
getmetatable function: 0x41c530 
next function: 0x41beb0 
setmetatable function: 0x41c170 
collectgarbage function: 0x41c0a0 
unpack function: 0x424f10 
print function: 0x41bd50 
ipairs function: 0x41c300 
bit32 table: 0x1b909f0 
error function: 0x41c030 
loadfile  function: 0x41c4c0 
arg  table: 0x1b90e80 
xpcall function: 0x41b770 
tostring  function: 0x41b860 
pairs function: 0x41c2e0 
rawset function: 0x41bc20 
utf8 table: 0x1b90180 
require function: 0x1b8a720 
math table: 0x1b8f2d0 
rawequal  function: 0x41bd10 
someFunc  function: 0x1bb0160 
io  table: 0x1b8d5c0 
assert function: 0x41c600 
package table: 0x1b8c4a0 
pcall function: 0x41b800 
loadstring  function: 0x41c3b0 
module function: 0x1b8c450 
table table: 0x1b8d2c0 
string table: 0x1b8be70 
os  table: 0x1b8d040 
dofile function: 0x41c580 
> _G["someFunc"] 
function: 0x1bb0160 
> _G['someFunc'] 
function: 0x1bb0160 
+1

Прямая консоль Damn ZeroBrain Studio. Он работал на другой консоли Lua. –