如何在Lua中显示数组元素?

我在 Lua 编程语言中显示数组元素方面遇到了问题。基本上,我创建了一个有三个元素的数组,并且尝试在 Corona SDK 模拟器中的 for 循环中显示其内容。问题是,如果我单独显示数组元素(不带循环),它们可以正常显示;但是一旦我将它们放进 for 循环中,屏幕上就什么都没有显示出来。

这是我的代码:

myText = {"hello", "world", "there"}

for i = 1, myText do
     local myText = display.newText( myText[i], 0, 0, native.systemFont, 35 )
end

原文链接 https://stackoverflow.com/questions/7274380

点赞
stackoverflow用户63791
stackoverflow用户63791

当你将你的循环改成下面这样会发生什么:

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
2011-09-01 18:17:09
stackoverflow用户1826857
stackoverflow用户1826857

下面是我写的一个函数,用于列出表格中的项(corona 将数组称为“表格”)。它类似于 PHP 的 print_r 函数,因此我称它为 print_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
2012-11-15 13:54:53
stackoverflow用户9724165
stackoverflow用户9724165

为什么不直接在“table.concat” 函数中打印表格?

myText = {"hello", "world", "there"}
print(table.concat(myText,", "))

hello, world, there

2018-05-01 05:09:39