村长 发表于 2022-8-5 00:07:33

lua第十六课第一类值

嗯,我的另一半其实在小破站开通了视频
所以我一直没去发帖子
这里重新写一下帖子,来为他拉一点粉丝

今天讲16课
函数是第一类值!!
看着很高大上
我用几个例子说明

①自己动手实践哦
a={p=print}
a.p("hello lua")
--这里p是a表的一个名与键用法类似,但要区分

②接着用例子①a表延伸
print=math.sin
a.p(print(1))
③反转过来
math.sin=a.p
math.sin(10,20)

第一类值(看理论,看不懂跳过)
意味着lua语言中的函数与其他常见类型的值(例如数值与字符串)具有同等权限
一个程序可以将某个函数保存到变量中(全局或者局部变量)或表中,也可以将某个函数作为参数传递给其他函数,还可以将某个函数作为其他函数的返回值返回

如果函数也是值的话,是可以创建函数的表达式的
举个常见的例子

function aaa(x) return 2*x end
--这个是个语法糖,让你方便理解的
以上等价于
aaa=function(x) return 2*x end
而像这种function(x) body end就是函数构造器,跟表{}构造器相似,你也可以理解为
函数定义实际上就是创建类型为"function"的值,把它赋值给一个变量的语句
注意!!!
所有函数是匿名的,像其他所有值一样,函数没名字。
在讨论函数时,像初学的print,实际指的是保存该函数的变量
我们通常把函数给全局变量,看似给函数起了个名字
很多场景下函数仍然会保持匿名性

举个例子
new = {
{name="lua", IP = "210.26.23.12"},
{name="arraial", IP = "210.26.30.23"},
{name="grauna", IP = "210.26.30.34"},
{name="derain", IP = "210.26.23.20"},
}
table.sort(new,function(a,b)
return(a.name > b.name) end)

表函数sort第一个参数是一个表(例子中的new)
第二个参数则是进行各种排序(例子中的是一个按name字母顺序)
sort并没试图穷尽所有排序,所以提供了可选的一个参数
好了,不懂去小破站视频下面问我
你直接去搜lua第二课闭包,应该可以搜到
我只是拉点流量

天镜盗梦 发表于 2022-8-6 12:06:28

鄙视楼下的顶帖没我快,哈哈

梦影 发表于 2022-8-10 17:55:50

站位支持

liqiang24 发表于 2022-8-11 14:44:24

传说中的沙发???哇卡卡

伴我多久 发表于 2022-8-11 19:00:54

啥玩应呀
页: [1]
查看完整版本: lua第十六课第一类值

村长黑科技是专业提供项目资源的服务的村长黑科技平台,如合购网赚项目、引流推广软件、软件程序开发等项目就选村长黑科
技平台参与或发布项目定制各种软件就来村长黑科技平台

本站中所有被研究的素材与信息全部来源于互联网,版权争议与本站无关。本站所发布的任何软件的破解分析文章、破解分析视频、补丁、注册机和注册信息,

仅限用于学习和研究软件安全的目的。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。学习破解分析技术是为了更好的完善软件可能存在的不安全因素,提升软件安全意识。所以您如果喜欢某程序,

请购买注册正版软件,获得正版优质服务!不允许将上述内容私自传播、销售或者其他任何非法用途!否则,产生任何法律责任,一切后果请用户自负,与本网站无关!如有侵权或非法用途请举报!请发送到邮箱:cxphj8@foxmail.com

《意见反馈》或《截图指定页面备注》发送到邮件,收到后24小时内删除,禁止用户学习使用关掉用户【学习使用权】!