Arrays Lua:如何以数组(或表)的形式访问字符串值?

Arrays Lua:如何以数组(或表)的形式访问字符串值?,arrays,string,lua,Arrays,String,Lua,我想知道如何在Lua中使用字符串值作为数组。我知道如何在C#等语言中使用它,但我不知道如何在Lua中使用它。string.sub(yourString,I,j)或justsub(yourString,I,j)其中I=j只获取字符串中的一个字符。请记住,Lua是1索引的,而不是像C#那样的0索引的。查看以获取更多详细信息。您可以获取字符串元表并更改元方法索引以返回给定位置上的字符。。。下面的代码正是这样做的 getmetatable('').__index = function(str,i) re

我想知道如何在Lua中使用字符串值作为数组。我知道如何在C#等语言中使用它,但我不知道如何在Lua中使用它。

string.sub(yourString,I,j)
或just
sub(yourString,I,j)
其中
I=j
只获取字符串中的一个字符。请记住,Lua是1索引的,而不是像C#那样的0索引的。查看以获取更多详细信息。

您可以获取字符串元表并更改元方法索引以返回给定位置上的字符。。。下面的代码正是这样做的

getmetatable('').__index = function(str,i) return string.sub(str,i,i) end
--example
string = "dog"
print(string[3])
-- Output: g

您的目标是访问字符串的单个字符或字符跨度吗?向我们展示您试图在lua中实现的等效C代码。的可能副本要在位置i(基于1)获得单个字符,请使用
str:sub(i,i)
。这不是相反的操作(修改字符串中的单个字符),因为Lua字符串是不可变的。我尝试使用_newindex使其读/写,但结果证明函数中的第一个参数是字符串,因此通过copy传递。。。如果通过引用传递,则可以更改它。