Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sdk 如何在Lua中显示数组元素?_Sdk_Lua_Coronasdk - Fatal编程技术网

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

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

我在用Lua编程语言显示数组元素时遇到问题。基本上,我创建了一个包含3个元素的数组,并试图在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  

将循环更改为以下内容时会发生什么:

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解释器都会发出嘶嘶声(就像打印各种有趣的表时发生的那样)。有没有简单的方法来修改上述函数?我必须为每种可能的类型写案例吗?