lua第十六课第一类值

[复制链接]
查看330 | 回复4 | 2022-8-5 00:07:33 | 显示全部楼层 |阅读模式
嗯,我的另一半其实在小破站开通了视频
所以我一直没去发帖子
这里重新写一下帖子,来为他拉一点粉丝

今天讲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第二课闭包,应该可以搜到
我只是拉点流量
aaaa
村长黑科技是专业提供项目资源的服务的村长黑科技平台,如合购网赚项目、引流推广软件、软件程序开发等项目就选村长黑科技平台,参与或发布项目定制各种软件就来村长黑科技平台
天镜盗梦 | 2022-8-6 12:06:28 | 显示全部楼层
鄙视楼下的顶帖没我快,哈哈
aaaa
村长黑科技是专业提供项目资源的服务的村长黑科技平台,如合购网赚项目、引流推广软件、软件程序开发等项目就选村长黑科技平台,参与或发布项目定制各种软件就来村长黑科技平台
回复

使用道具 举报

梦影 | 2022-8-10 17:55:50 | 显示全部楼层
站位支持
aaaa
村长黑科技是专业提供项目资源的服务的村长黑科技平台,如合购网赚项目、引流推广软件、软件程序开发等项目就选村长黑科技平台,参与或发布项目定制各种软件就来村长黑科技平台
回复

使用道具 举报

liqiang24 | 2022-8-11 14:44:24 | 显示全部楼层
传说中的沙发???哇卡卡
aaaa
村长黑科技是专业提供项目资源的服务的村长黑科技平台,如合购网赚项目、引流推广软件、软件程序开发等项目就选村长黑科技平台,参与或发布项目定制各种软件就来村长黑科技平台
回复

使用道具 举报

伴我多久 | 2022-8-11 19:00:54 | 显示全部楼层
啥玩应呀
aaaa
村长黑科技是专业提供项目资源的服务的村长黑科技平台,如合购网赚项目、引流推广软件、软件程序开发等项目就选村长黑科技平台,参与或发布项目定制各种软件就来村长黑科技平台
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则