字符串在Lua中使用变量中的字符串值进行连接

时间:2014-02-07 10:32:37

标签: string lua string-concatenation

我有名为

的函数
MapMSH(Msg.MSH, b)
MapPID(Msg.PID, b)
MapPV1(Msg.PV1,b)

现在,在我将调用三个函数的另一个函数中,我有一个变量u循环遍历值MSHPIDPV1 我知道我需要使用..运算符来连接字符串。

我真正想要的是u中与Map连接的价值,比如

"Map"..u(Msg.u, b)   

这样,只要u中的值匹配,我的函数就会自动调用。  使用上面的语法,它会在"Map"附近显示意外符号 有人可以告诉我确切的语法吗?

1 个答案:

答案 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非常相似。