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)

if conditions then

then-part

end;

(B)

    if conditions then

       then-part

else

       else-part

end;

(C)

if conditions then

    then-part

elseif conditions then

    elseif-part

..            --->多个elseif

else

    else-part

end;

18.   While语句

while condition do

    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

 

 

你可能感兴趣的:(thread,c,String,function,table,lua)