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

问题描述:

我想知道如何在Lua中使用字符串值作为数组。我知道如何在C#等语言中使用它,但我不知道如何在Lua中使用它。Lua:我如何以数组(或表)的形式访问字符串值?

+2

你的目标是访问单个字符或字符串的字符跨度吗? –

+1

向我们展示您想要在lua中完成的等效C#代码。 – greatwolf

+1

可能重复的[Lua - 将字符串转换为表格](http://stackoverflow.com/questions/20423406/lua-convert-string-to-table) –

string.sub(yourString,i,j)或只是sub(yourString,i,j)其中i = j只能得到字符串中的一个字符。请记住,Lua是1索引,而不是像C#那样索引0。查看Lua string documentation了解更多详情。

您可以获取字符串metatable并更改metamethod __index以返回给定位置上的字符......下面的代码完全是这样。

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

请注意,这是只读的 – Piglet

+0

我试图使用__newindex使其读/写,但事实证明函数中的第一个参数是一个字符串,因此通过复制传递...如果它通过了通过参考可以改变它。 –