Lua - The Language 1 控制结构、table数据结构

1。用[[xxxxx]]直接引用字符串,类似于C#里的 @"xxxxx"。

比如: [[alo [[

"alo\n123\"" = 123"]] = alo

123"]]

2。循环结构和选择结构

-- for and if

for i = 1,5 do

print("i is now "..i)

if i < 2 then

print("small")

elseif i < 4 then

print("medium")

else

print("big")

end

end

-- while

i=1

while i <=5 do

print("i is now "..i)

if i < 2 then

print("small")

elseif i < 4 then

print("medium")

else

print("big")

end

i = i+1

end

-- repeat until,注意没有end

i=1

repeat

print("i is now "..i)

if i < 2 then

print("small")

elseif i < 4 then

print("medium")

else

print("big")

end

i = i+1

until i == 6

输出结果:

i is now 1

small

i is now 2

medium

i is now 3

medium

i is now 4

big

i is now 5

big

3。简单的table结构

-- Arrays

myData = {}

myData[0] = "foo"

myData[1] = 42

-- Hash tables

myData["bar"] = "baz"

-- Iterate through the structure

for key,value in myData do

print(key .. "=" .. value)

end

输出结果:

1=42

0=foo

bar=baz

4。嵌套的table结构

-- table结构

myPolygon = {

color="blue",

thickness=2,

npoints=4;

{x=0,y=0},

{x=-10,y=0},

{x=-5,y=4},

}

-- 索引形式

print(myPolygon["color"])

-- 点形式

print(myPolygon.thickness)

-- 三个子表,分别是myPolygon[1] 到 myPolygon[3]

print(myPolygon[2].x)

print(myPolygon[3]["y"])

输出结果:

blue

2

-10

4