网易首页 > 网易号 > 正文 申请入驻

LUA语言教程与工程实践2.5 程序段

0
分享至

2.5 程序段

程序段(chunk)是Lua语言中很基础的一个概念,在前面我们已经提及过,与变量的作用域相关。程序段可以理解为Lua语言的一段代码,即一组命令或表达式组成的序列;这个序列可以是一个文件中的全部代码,也可以是一个函数内的代码,还可以是一个控制结构内的代码。在程序段前定义的全局变量在程序段内可以访问;在程序段内定义的局部变量,作用域即为本程序段。

Lua是一种编写风格比较灵活的编程语言,语句可以和函数定义混排在一起组成一个程序段,甚至可以在一个函数中完成另一个函数的定义。在执行程序段时,其中的语句会直接运行;其中的函数需要调用。这样可以将整个文件作为一个程序段,在另一个文件中来进行编译、运行等。在文件“test.lua”编写如下内容,这些都是我们前面进行过的练习。

a = 20 -- 全局变量

print(type(a)) -- 输出a的数据类型, number

a = string.format('%02X', a) --将a转换为16进制数对应的字符串

print(a, type(a)) --输出a的数据类型, string

local b = 50 -- 局部变量

function variable_show()

c = 5 -- 全局变量

local d = 6 -- 局部变量

end

variable_show()

print(c,d) --c为全局变量,此处可以访问到;d的作用域中函数variabel_show()之内,此处无法访问到

do

local a = 6 -- 局部变量,不改变全局变量a的值

b = 6 -- 此处可以访问到局部变量b,对局部变量b重新赋值

print(a,b); -- print()函数中访问的为局部变量a(第16行创建)、局部变量b(第5行定义、第17行重新赋值),6,6

end

print(a,b) --print()函数中访问的为全局变量a(第1行创建、第3行重新赋值)、局部变量b(第5行定义、第17行重新赋值),14,6

print('你好,中国!')

x = 0.2

y = math.sin(x)

print(y)

function string_concat(separator, ...)

--输入为多个字符串

--输出为拼接完成的字符串

--对输入的字符串按顺序进行拼接

local args = {...}

local result = ''

for i = 1, #args do

if i == 1 then

result = result .. args[i]

else

result = result .. separator .. args[i]

end

end

return result

end

print('0: ', string_concat())

print('1: ', string_concat('_', 'abc'))

print('2: ', string_concat('_', 'abc', '123'))

print('3: ', string_concat('_', 'abc', '123', 'Lua'))

在另一个文件“run.lua”中我们写入以下内容,可以进行测试。

dofile('test.lua')

print('0: ', string_concat(‘12345’))

编译运行后结果如下图所示。由图可见,dofile(‘test.lua’)会将整个文件作为一个程序段执行,而且“test.lua”中的全局变量中文件“run.lua”中可以调用,“test.lua”中的局部变量在文件“run.lua”中不可以调用

require()可以实现和dofile()相似的功能,但require()仅在第一次调用时会进行执行文件,再次调用时仅加载而不会再次执行。loadfile()会加载文件并将整个文件作为一个函数变量返回,并不会运行文件中的代码;如果要运行文件中的代码需要调用返回的函数。可以参考下图加深对require()和loadfile()的理解。需要注意的是调用函数require()时需要把“test.lua”的文件路径添加到“package.math”中,否则无法找到目标文件。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
女老师因“板书幼态”,被家长举报后停职,师范生的解释很现实!

女老师因“板书幼态”,被家长举报后停职,师范生的解释很现实!

妍妍教育日记
2024-11-24 19:06:49
太突然!著名导演凌晨去世

太突然!著名导演凌晨去世

鲁中晨报
2024-11-24 09:24:08
哈尔滨冰雪大世界糖葫芦点位100万元起拍引关注,去年该项目40万元成交

哈尔滨冰雪大世界糖葫芦点位100万元起拍引关注,去年该项目40万元成交

极目新闻
2024-11-25 14:32:01
蔡依林“全裸”开演唱会?身材惊到网友:这是不打码能看的?

蔡依林“全裸”开演唱会?身材惊到网友:这是不打码能看的?

书画艺术收藏
2024-11-23 20:00:03
掘金27分惨败!威少27+3,约基奇22+7+7,赛后约基奇一把抱住唐斯

掘金27分惨败!威少27+3,约基奇22+7+7,赛后约基奇一把抱住唐斯

担酒
2024-11-26 12:28:32
2022年,叶嘉莹在访问中告诉鲁豫,我一生都没有谈过恋爱

2022年,叶嘉莹在访问中告诉鲁豫,我一生都没有谈过恋爱

修车工刘海柱
2024-11-25 17:48:10
刚刚!特朗普发起进攻,机构:人民币将跌至7.5,这6个行业小心了

刚刚!特朗普发起进攻,机构:人民币将跌至7.5,这6个行业小心了

鹏哥投研
2024-11-26 12:13:33
A股:大家做好准备吧,防备下午大盘,会有大动作

A股:大家做好准备吧,防备下午大盘,会有大动作

探寻者
2024-11-26 11:48:05
吴柳芳管晨辰疑为炒作?两人同公司,吴柳芳解封后预计粉丝暴涨

吴柳芳管晨辰疑为炒作?两人同公司,吴柳芳解封后预计粉丝暴涨

詹妹侃体育
2024-11-26 11:35:33
男子用电锤给人治病,17天治好半身不遂:目击者曝料,卫健委回应

男子用电锤给人治病,17天治好半身不遂:目击者曝料,卫健委回应

花小萌和你聊情感
2024-11-26 04:52:15
“消失”已久的邰丽华,在结婚生子后,已经走上了另外一条大道

“消失”已久的邰丽华,在结婚生子后,已经走上了另外一条大道

科学发掘
2024-11-25 23:15:09
只差1球!欧冠第3位百球巨星即将诞生:效率比梅西C罗还高

只差1球!欧冠第3位百球巨星即将诞生:效率比梅西C罗还高

叶青足球世界
2024-11-26 10:07:27
变相收费,自取灭亡:中国有线电视自己把自己活活玩死了

变相收费,自取灭亡:中国有线电视自己把自己活活玩死了

笑熬浆糊111
2024-11-26 00:05:22
气温最低跌至5℃!广东人害怕的“湿冷魔法”要来了

气温最低跌至5℃!广东人害怕的“湿冷魔法”要来了

品牌东莞
2024-11-26 11:06:30
楼市起风了!北京楼市太燃了,二手房成交量下滑了,环比跌幅10%

楼市起风了!北京楼市太燃了,二手房成交量下滑了,环比跌幅10%

楼市味道
2024-11-26 11:20:29
李泽楷要急了,梁洛施恋爱了!男方是导演,因张家辉一句话转型

李泽楷要急了,梁洛施恋爱了!男方是导演,因张家辉一句话转型

史纪文谭
2024-11-25 16:16:38
他还没有放弃!威少末节24分了!掘金仍落后19分!

他还没有放弃!威少末节24分了!掘金仍落后19分!

直播吧
2024-11-26 12:15:10
史上最强Mate第一时间到手!华为Mate 70将在美团外卖首销

史上最强Mate第一时间到手!华为Mate 70将在美团外卖首销

快科技
2024-11-25 23:59:08
黑龙江省委原常委王一新,在海南、山西任职时曾大肆敛财

黑龙江省委原常委王一新,在海南、山西任职时曾大肆敛财

政知新媒体
2024-11-26 10:42:00
证实了?外媒:白宫官员称,乌方在紧急需要情况下可使用ATACMS自卫

证实了?外媒:白宫官员称,乌方在紧急需要情况下可使用ATACMS自卫

环球网资讯
2024-11-26 11:00:13
2024-11-26 14:23:00
知识创造者
知识创造者
能编程,能写作
21文章数 20关注度
往期回顾 全部

科技要闻

瑞银:跨国汽车公司在华产能冗余达千万辆

头条要闻

女儿洗澡时下体出血确诊患罕见病 家长:无药可医

头条要闻

女儿洗澡时下体出血确诊患罕见病 家长:无药可医

体育要闻

37岁,他用“半条右腿”重返巅峰

娱乐要闻

分手复合又打胎,黄晓明说希望是一场梦

财经要闻

洪灏刘煜辉对谈实录 涉及A股、债务等!

汽车要闻

入华10年 林肯用宋锦将美式豪华“中国化”

态度原创

房产
时尚
教育
数码
本地

房产要闻

合生把上百个亿万富豪搞破防了

今冬穿“奶甜风”的女生们,等着被夸吧!

教育要闻

南武、海实、五中金碧名额分配深度剖析

数码要闻

荣耀笔记本新品爆料:首发新一代酷睿5 续航再创新高

本地新闻

城市24小时|领跑万亿城市,武汉“开挂”了?

无障碍浏览 进入关怀版