lua语法-变量的定义与使用

lua语法-变量(全局变量与局部变量)

全局变量:直接定义变量名,并赋值

例如,a = 1;
注:用;结束当前语句(可选,也可以不使用分号)

局部变量:使用local关键字进行定义

例如,local b = 2;

变量命名规则

  • 遵循C/C++语言中的变量命名规则
  • 避免定义下划线开头并立即跟着大写字母的变量名
  • lua关键字不能用作变量名

例如,以下变量定义语句合法:

s = "lua";  
i = 1;  
\_float\_ = 0.01  
PI = 3.14  

例如,以下变量定义语句不合法:

if = "err";  
_Err = 0.1;  
标识符= 1;  
\_PI\_ = 3.14

lua中的变量使用:

  • 可以在一行定义多个变量,尽量在定义变量时赋值
    注:可以使用一个 = 对多个变量进行赋值,赋值采用一一对应原则,如果变量和值不是一一对应,则未赋值的变量默认值为nil
  • 定义变量时不需要声明类型,变量仅具有动态类型,不具有静态类型
  • 未赋值的变量,其值默认为nil(空值)
    例如,
    a = 1
    b,c = "2"
    d = 3,4  

以上程序执行完之后,变量的值分别是:
a = 1
b = 2
c = nil
d = 3

变量使用的注意事项

  • 定义变量时不需要声明类型
  • 局部变量的作用于仅限于块中(if,else,while,do,function)
  • 在lua中尽可能使用局部变量(访问速度更快)
  • 当不再使用全局变量的时候,用nil进行赋值

变量定义实例程序:

a,b = 1,2,3;
str = "global";

do
    local x,y = a,b;
    local str = str;
    --局部变量str的值由全局变量str(global)进行传递
    print("str = ",str);

    --将str局部变量进行重新赋值,str局部变量的值变为local
    str = "local";
    print("str = ",str);

    print("x = ",x);
    print("y = ",y);
    print("a = ",a);
    print("b = ",b);
end
print("---------------------\n");
print("str = ",str);

--以下输出语句均针对全局变量    
print("x = ",x);
print("y = ",y);
print("a = ",a);
print("b = ",b);

a,b,str = nil;

以上程序执行之后的输出结果为:
str = global
str = local
x = 1
y = 2
a = 1
b = 2
———————
str = global
x = nil
y = nil
a = 1
b = 2

分析:

  • do……end之间定义的变量均为局部变量
  • 当end执行后,所有局部变量生命周期结束;故在end之后,输出x和y均为未赋值的变量,变量值均为nil。

猜你喜欢

转载自blog.csdn.net/qq_28944301/article/details/79436659