Sdk 如何在Lua中显示数组元素?
我在用Lua编程语言显示数组元素时遇到问题。基本上,我创建了一个包含3个元素的数组,并试图在corona sdk仿真器上以for循环显示其内容。如果我显示单个数组元素(没有循环),它们显示得很好;一旦我把它们放进一个for循环,屏幕上就不再显示任何东西了 这是我的代码:Sdk 如何在Lua中显示数组元素?,sdk,lua,coronasdk,Sdk,Lua,Coronasdk,我在用Lua编程语言显示数组元素时遇到问题。基本上,我创建了一个包含3个元素的数组,并试图在corona sdk仿真器上以for循环显示其内容。如果我显示单个数组元素(没有循环),它们显示得很好;一旦我把它们放进一个for循环,屏幕上就不再显示任何东西了 这是我的代码: myText = {"hello", "world", "there"} for i = 1, myText do local myText = display.newText( myText[i], 0, 0, n
myText = {"hello", "world", "there"}
for i = 1, myText do
local myText = display.newText( myText[i], 0, 0, native.systemFont, 35 )
end
将循环更改为以下内容时会发生什么:
for i = 1, #myText do
local myText = display.newText( myText[i], 0, 0, native.systemFont, 35 )
end
或者这个:
for i, v in ipairs(myText) do
local myText = display.newText( v, 0, 0, native.systemFont, 35 )
end
下面是我编写的一个函数,用于列出表中的项目(corona将数组称为“表”)。它类似于PHP的print\u r,所以我称之为print\u r 您可以将其称为:
print_r(myTable)
功能:
function print_r(arr, indentLevel)
local str = ""
local indentStr = "#"
if(indentLevel == nil) then
print(print_r(arr, 0))
return
end
for i = 0, indentLevel do
indentStr = indentStr.."\t"
end
for index,value in pairs(arr) do
if type(value) == "table" then
str = str..indentStr..index..": \n"..print_r(value, (indentLevel + 1))
else
str = str..indentStr..index..": "..value.."\n"
end
end
return str
end
为什么不直接在“table.concat”函数中打印表格呢
myText = {"hello", "world", "there"}
print(table.concat(myText,", "))
你好,世界,那里
你是说
对于i=1,#myText do
?我错过了数组前面的#符号,非常感谢你的帮助Alex能把它转换成答案吗?phresnel,你是什么意思?这是一个答案。那位先生使我的日子变得简单而优雅!我在试着调试一个mod for Don't Knight Together(不要一起挨饿)时真是费了好大劲:每次我敢尝试连接“boolean”、“userdata”等东西时,那里的LUA解释器都会发出嘶嘶声(就像打印各种有趣的表时发生的那样)。有没有简单的方法来修改上述函数?我必须为每种可能的类型写案例吗?