I'm having an issue displaying the elements of an array in Lua programming language. Basically, i created an array with 3 elements, and i'm trying to display its contents in a for loop on the corona sdk emulato开发者_JS百科r. What happens is that if i display the individual array elements (without the loop), they display fine; as soon as I put them in a for loop, nothing shows up on the screen anymore
this is my code:
myText = {"hello", "world", "there"}
for i = 1, myText do
local myText = display.newText( myText[i], 0, 0, native.systemFont, 35 )
end
Why not just print the table in "table.concat" function?
myText = {"hello", "world", "there"}
print(table.concat(myText,", "))
hello, world, there
Here is a function I wrote to list the items in a table (corona calls arrays as "tables"). It is similar to PHP's print_r, so I called it print_r
You can call it as:
print_r(myTable)
Function:
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
What happens when you change your loop to this:
for i = 1, #myText do
local myText = display.newText( myText[i], 0, 0, native.systemFont, 35 )
end
Or this:
for i, v in ipairs(myText) do
local myText = display.newText( v, 0, 0, native.systemFont, 35 )
end
精彩评论