lua的一些语法

今天看了下lua的pdf。学习了一下lua。

对于:看以下代码:

polyline = {
  color = "blue", thickness = 2,
  { x = 0, y = 0 },
  thicknesss = 10,
  { x = -10, y = 0 },
  { x = 0, y = 1 }
}

print( polyline[ 2 ].x );
print( polyline.color );
print( polyline.thicknesss )

代码是这样的,可运行结果出乎我的预料:

怎么也没想到print( polyline[ 2 ].x );输出的居然是-10.

原来,它会按照类型分一个是

假设 a = {

  { x = 0, y = 0 },
  { x = -10, y = 0 },
  { x = 0, y = 1 }

}

一个是

b = {

color = "blue", thickness = 2, thicknesss = 10, 

}

如果你输出[x],则去a里面找,下标从1开始,(切记lua下标从1开始),如果是polyline.color或者polyline.thickness或者polyline.thicknesss则去b里面找!!!

for循环

for i = 10, 1, -1 do

  print( i )

end

相当于

for( int i = 10, i <= 1; i-- ) {

  sprintf( i );

}

赋值


a, b ,c = 1, 2, 3 等价于 a = 1; b = 2; c = 3

如果左边的数量小于右边的数量,则多余的会忽略,

如果左边的数量大于右边的数量,则依次赋值,没有的赋值为nil

 如:

a , b, c = 1, 2

则 a = 1; b = 2; c = nil

a, b, c = 1, 2, 3, 4

则 a = 1; b = 2; c = 3; 4忽略

逻辑运算符 ( and or not )

a and b   -- 如果a为false,则返回a,否则返回b
a or b     -- 如果a为true,则返回a,否则返回b

看一个特殊的例子

C语言中的三元运算符

a ? b : c

在lua中可以这样实现

( a and b ) or c

原文地址:https://www.cnblogs.com/Colored-Mr/p/4681020.html