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

时间:2011-09-01 17:53:43

标签: sdk lua corona

我在使用Lua编程语言显示数组元素时出现问题。基本上,我创建了一个包含3个元素的数组,我试图在电晕sdk模拟器上的for循环中显示其内容。如果我显示各个数组元素(没有循环),它们会显示正常;一旦我将它们放入for循环中,屏幕上就不会出现任何内容

这是我的代码:

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

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

3 个答案:

答案 0 :(得分:11)

这是我编写的用于列出表中项目的函数(电晕将数组称为“表”)。它类似于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

答案 1 :(得分:9)

将循环更改为此时会发生什么:

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

答案 2 :(得分:0)

为什么不在" table.concat"中打印表格。功能

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

你好,世界,那里