Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 如何将lua表中的条目视为字符串?_String_Variables_Lua_Lua Table - Fatal编程技术网

String 如何将lua表中的条目视为字符串?

String 如何将lua表中的条目视为字符串?,string,variables,lua,lua-table,String,Variables,Lua,Lua Table,以下代码不生成任何内容,因为a、b、c为零 s={a,b,c} for _,v in ipairs(s) do print(v) end 下面的代码 s={"a","b","c"} for _,v in ipairs(s) do print(v) end 产生 a b c 这是显而易见的,因为“a”、“b”、“c”是字符串。当s被声明为{a,b,c}时,我希望得到与第二个代码相同的输出。简而言之,我想将表s中的每个条目都视为字符串。在Lua有没有办法做到这一点?我知道这是一个奇怪

以下代码不生成任何内容,因为a、b、c为零

s={a,b,c}
for _,v in ipairs(s) do 
  print(v)
end
下面的代码

s={"a","b","c"}
for _,v in ipairs(s) do 
  print(v)
end
产生

a

b

c


这是显而易见的,因为“a”、“b”、“c”是字符串。当s被声明为{a,b,c}时,我希望得到与第二个代码相同的输出。简而言之,我想将表s中的每个条目都视为字符串。在Lua有没有办法做到这一点?我知道这是一个奇怪的问题,但我需要它,同时与lua和乳胶的某些目的

setmetatable({{code>index=function(t,k),如果type(k)=“string”和k:match“^[%w][uu]+$”匹配,则返回k end})
。它工作得很好。请把这个作为答案贴出来,这样我就可以接受它作为答案了;请记住,如果此更改假定未初始化的全局变量为
nil
,则可能会在其他地方中断代码。此外,更简单的
setmetatable(_G,{{u index=function(t,k)return k end})
还有更好的解决方法吗?这适用于lua,但不适用于luaTeX。请参阅问题
setmetatable({u G,{u index=function(t,k),如果type(k)=“string”和k:match“^[%w\uu]+$”然后返回k end})
谢谢。它工作得很好。请把这个作为答案贴出来,这样我就可以接受它作为答案了;请记住,如果此更改假定未初始化的全局变量为
nil
,则可能会在其他地方中断代码。此外,更简单的
setmetatable(_G,{{u index=function(t,k)return k end})
还有更好的解决方法吗?这适用于lua,但不适用于luaTeX。参考问题