Как отобразить элементы массива в Lua? - PullRequest
2 голосов
/ 01 сентября 2011

У меня проблема с отображением элементов массива на языке программирования Lua.По сути, я создал массив из 3 элементов и пытаюсь отобразить его содержимое в цикле for на эмуляторе Corona SDK.Что происходит, если я отображаю отдельные элементы массива (без цикла), они отображаются нормально;как только я помещаю их в цикл for, на экране больше ничего не появляется

это мой код:

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

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

Ответы [ 3 ]

11 голосов
/ 15 ноября 2012

Вот функция, которую я написал для перечисления элементов в таблице (корона вызывает массивы как «таблицы»).Он похож на 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
9 голосов
/ 01 сентября 2011

Что происходит, когда вы меняете свой цикл на это:

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
0 голосов
/ 01 мая 2018

Почему бы просто не распечатать таблицу в функции "table.concat"?

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

Привет, мир, там

...