Lua灵活的语法注意点

Lua灵活的语法注意点:

1. 每个语句结尾的分号(;)是可选的,但如果同一行有多个语句最好用;分开

a = 1 b = a*2-- ugly, but valid

2. 全局变量不需要声明,给一个变量赋值后即创建了这个全局变量,访问一个没有初始化的全局变量也不会出错,只不过得到的结果是:nil.

print(b)--> nil

3. Lua中有8个基本类型分别为:nil、boolean、number、string、userdata、function、thread和table。函数type可以测试给定变量或者值的类型。

print(type("Hello world"))--> string

print(type(10.4*3))--> number

print(type(print))--> function

print(type(type))--> function

print(type(true))--> boolean

print(type(nil))--> nil

print(type(type(X)))--> string

4. 在控制结构的条件中除了false和nil为假,其他值都为真。所以Lua认为0和空串都是真

5. Lua中字符串是不可以修改的,你可以创建一个新的变量存放你要的字符串,如下:

a ="one string"

b = string.gsub(a,"one","another")-- change string parts

print(a)--> one string

print(b)--> another string

6. 可以使用单引号或者双引号表示字符串

a ="a line"

b ='another line'

7. ^ 幂运算 如n^2表示n的2次方

8. 不等于:~=

9. 连接运算符:..--两个点

10. 数组下标从1开始

11. 表的构造

12. Lua可以对多个变量同时赋值,变量列表和值列表的各个元素用逗号分开,赋值语句右边的值会依次赋给左边的变量。

a, b = 10, 2*x <--> a=10; b=2*x

13. 我们可以这样进行交换变量的值:

x, y = y, x-- swap 'x' for 'y'

a[i], a[j] = a[j], a[i]-- swap 'a[i]' for 'a[i]'

14. a. 变量个数 > 值的个数 按变量个数补足nil

b. 变量个数 < 值的个数 多余的值会被忽略

例如:

a, b, c = 0, 1

print(a,b,c) --> 0 1 nil

a, b = a+1, b+1, b+2 -- value of b+2 is ignored

print(a,b) --> 1 2

a, b, c = 0

print(a,b,c) --> 0 nil nil常见错误,需要为每个变量赋值

15.a, b = f()

f()返回两个值,第一个赋给a,第二个赋给b。

16. 应该尽可能的使用局部变量,有两个好处:

1.避免命名冲突

2.访问局部变量的速度比全局变量更快.

17. If语句三种形式

(A)

ifconditionsthen

then-part

end;

(B)

ifconditionsthen

then-part

else

else-part

end;

(C)

ifconditionsthen

then-part

elseifconditionsthen

elseif-part

..--->多个elseif

else

else-part

end;

18. While语句

whileconditiondo

statements;

end;

19. for语句有两大类:

第一, 数值for循环:

for i=1,4 do

print(i)

end //打印4次,i从1到4

for i=4,1,-1 do

print(i)

end //i从4到1,-1是自减1?换成0会死循环

第二, 范型for循环:

revDays = {}

for i,v in ipairs(days) do

revDays[v] = i

end

20. -- 返回Lua出现的初始位置跟结束位置,下标从1开始

s, e = string.find("hello Lua users", "Lua")

print(s, e) --> 7 9

你可能感兴趣的:(lua)