lua系统学习08-Chunk与局部变量

19 篇文章 0 订阅
14 篇文章 0 订阅

关于上篇多重赋值,还发现一个特性
也算是函数的一个特性
函数的返回值支持返回多个。
可以使用多重赋值被多个变量接收。
如:

function func()
    return 1,2
end
a,b=func()
print(a)
print(b)

debug

1
2

这样就不需要手动创建一个集合去返回了。
非常便捷就可以为指定变量赋予指定的值

局部

在lua中也有语句块Chunk的概念,有块的概念就有局部的概念,在lua局部变量使用local语句来创建。
测试在Chunk脚本中加载multiplyAssignment脚本
在Chunk.lua脚本中的定义

---chunk.lua
print("Hello world")
dofile("E:\\multiplyAssignment.lua")---注意lua路径不能包含中文,至于如何解决中文问题,后议
print(worldVariable)
print(localVariable)

在multiplyAssignment.lua脚本中的定义

---multiplyAssignment.lua
function func()
    return 1,2
end
a,b=func()
print(a)
print(b)

local localVariable="Local"
worldVariable="World"

输出结果

Hello world
1
2
World
nil

得出结果:
local局部变量定义后 访问范围限制在语句块中,或者是在该脚本中。(脚本也属于一个块)简称类块,一旦超出这个块的话该变量就随调用栈的销毁而销毁。
语句块分为 方法块,逻辑分支块、while循环块、类块等等。

下面看一下全局变量和局部变量同名时候的情况
function VariableClash()
    x=10
    if x==10 then
        local x=20
        print(x)
        x=30
        print(x)
    end
    print(x)
end

VariableClash()

输出结果

20
30
10

可以看到与c#的规则一样,在这个块中出现同名的局部变量,总是以局部变量优先进行运算,除非特点指定这个变量是全局变量。
那么如何在局部块中使用全局变量。

待研究

lua编写推荐:尽可能地使用局部变量,可以避免将一些无用的名称引入全局环境,造成环境污染。此外,访问局部变量比访问全局变量来的快,概念是跟c#堆栈调用原理一样。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值