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

Mar*_*ius 2 sdk lua coronasdk

我在使用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  
Run Code Online (Sandbox Code Playgroud)

小智 11

这是我写的一个函数列出表中的项目(电晕将数组称为"表").它类似于PHP的print_r,所以我称之为print_r

您可以将其命名为:

print_r(myTable)
Run Code Online (Sandbox Code Playgroud)

功能:

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
Run Code Online (Sandbox Code Playgroud)


Ale*_*lex 9

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

for i = 1, #myText do
    local myText = display.newText( myText[i], 0, 0, native.systemFont, 35 )
end
Run Code Online (Sandbox Code Playgroud)

或这个:

for i, v in ipairs(myText) do
    local myText = display.newText( v, 0, 0, native.systemFont, 35 )
end
Run Code Online (Sandbox Code Playgroud)


小智 6

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

myText = {"hello", "world", "there"}
print(table.concat(myText,", "))
Run Code Online (Sandbox Code Playgroud)

你好,世界,那里