#lua#《全局变量》和《局部变量》

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/HQ354974212/article/details/89455695

原理:

1.全局变量:定义在函数外的变量就叫全局变量(不在代码块里面定义的变量) 

2.局部变量:定义在函数内的变量就叫局部变量(在代码块里面定义的变量) 

区别: 

1.局部变量只能在它所在的作用域里面使用,全局变量在任意函数内都可以使用 

2.局部变量在它所在的代码块结束后就被回收,全局变量在程序结束的时候才会被回收 

作用域: 

1.作用域里面可以声明作用域外同名的变量,作用域里面同名的变量会暂时遮盖住外面的变量 

(当局部变量和全局变量重名时,那么在它这个函数里面局部变量会暂时遮盖住全局变量)


逐步剖析:

    print(a)             --向上查找,变量a还未赋值,输出nil

    a = 111             --全局变量(整个lua文件中都可以使用,向下的范围)

do

    local a = 0              --局部变量

             a = 1              --全局变量

    print(a)                    --向上查找,首先找到全局变量a=1,输出1

             b = 222                     --全局变量(整个lua文件中都可以使用,向下的范围)

end

function fun()

    local c = 333            --局部变量

            d = 444            --全局变量

end

print(a)            --先在全局找,找不到再去代码块里找

print(b)            --同上

print(c)            --未调用函数,c的值为nil

print(d)            --同上

print("----需要先调用函数,否则全局变量d没有值--")

fun()

print(c)

print(d)

运行结果如下:


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容