我有名为
的函数MapMSH(Msg.MSH, b)
MapPID(Msg.PID, b)
MapPV1(Msg.PV1,b)
现在,在我将调用三个函数的另一个函数中,我有一个变量u
循环遍历值MSH
,PID
和PV1
我知道我需要使用..
运算符来连接字符串。
我真正想要的是u
中与Map连接的价值,比如
"Map"..u(Msg.u, b)
这样,只要u
中的值匹配,我的函数就会自动调用。
使用上面的语法,它会在"Map"
附近显示意外符号
有人可以告诉我确切的语法吗?
答案 0 :(得分:2)
如果您的函数位于全局命名空间中,请尝试此操作。
funcList = {"MSH","PID","PV1"}
for _,u in pairs(funcList) do
_G["Map"..u](Msg[u],"X")
end
测试
Msg = { MSH="MSH", PID="PID", PV1="PV1" }
function MapMSH(a, b)
print( a..b )
end
function MapPID(a, b)
print( a..b )
end
function MapPV1(a, b)
print( a..b )
end
输出
MSHX
PIDX
PV1X
您的问题与this problem非常相似。