当前位置: 首页 > news >正文

大连网站制做公司如何利用网站模板做网站

大连网站制做公司,如何利用网站模板做网站,网站内外链怎么做效果好,沈阳市城乡建设局网站首页一、Lua 中的函数 Lua 中的函数是第一类值。意味着和其他的常见类型的值#xff08;例如数值和字符串#xff09;具有同等权限。 举个例子#xff0c;函数也可以像其他类型一样存储起来#xff0c;然后调用 -- 将 a.p 指向 print 函数 a { p print } -- 使用 a.p 函数…一、Lua 中的函数 Lua 中的函数是第一类值。意味着和其他的常见类型的值例如数值和字符串具有同等权限。 举个例子函数也可以像其他类型一样存储起来然后调用 -- 将 a.p 指向 print 函数 a { p print } -- 使用 a.p 函数 a.p(jiangpengyong) --- jiangpengyong二、匿名函数 正常情况下我们定义一个函数是下面代码这样的 function foo1()print(Foo1 called.) end然而其实可以写成下面这样将函数赋值给一个变量这样 foo 就是一个函数类型的变量了。 foo function(x)return x * x end其实 Lua 的函数就是一个 function 类型的变量可以查看之前的文章“Lua 数据类型 —— 函数”。第一种方式变量名即为函数名foo1第二种则为变量名foo 因为函数是一个变量所以也可以进行判断类型删除变量等操作。 foo function(x)return x * x end print(foo(2)) -- 4 print(type(foo), type(foo)) -- type(foo) functionfunction foo1()print(Foo1 called.) end foo1() -- Foo1 called. print(type(foo1), type(foo1)) -- type(foo1) function foo1 nil --foo1() -- attempt to call a nil value (global foo1) print(type(foo1), type(foo1)) -- type(foo1) nil三、高阶函数 以另一个函数作为参数的函数即为高阶函数。 其实这只是 Lua 函数作为第一类值特性的一个表现并不是新的特性。 举个例子 这里编写一个导数函数 f(x) (f(x d) - f(x))/d编写如下f 即使一个函数 function derivative(f, delta)delta delta or 1e-4return function(x)return (f(x delta) - f(x)) / deltaend end c derivative(math.sin) print(math.cos(5.2), c(5.2)) -- 0.46851667130038 0.46856084325086四、在 table 中定义函数 因为函数在 Lua 中与其他类型具有同等权限所以也可以 table 中定义。 第一种方式用了匿名函数进行定义只是归属至表 Lib1 {} Lib1.add function(a, b)return a b end Lib1.reduce function(a, b)return a - b end print(Lib1, Lib1.add(10, 2), Lib1.reduce(2, 3)) -- Lib1 12 -1第二种方式也可以使用表构造器的一种方式记录式创建 Lib2 {add function(a, b)return a b;end,reduce function(a, b)return a - b;end } print(Lib2, Lib2.add(10, 2), Lib2.reduce(2, 3)) -- Lib2 12 -1第三种方式只是用了常规的函数定义 Lib3 {} function Lib3.add(a, b)return a b end function Lib3.reduce(a, b)return a - b end print(Lib3, Lib3.add(10, 2), Lib3.reduce(2, 3)) -- Lib3 12 -1五、非全局函数 定义一个局部函数和定义一个局部变量是一样的例如下面的代码只需要加上 local 即可 local function fact1(n)if n 0 thenreturn 1endreturn n * fact1(n - 1) end print(fact1(10)) -- 3628800值得注意 如果用匿名函数定义局部函数的话则会有坑。 当定义一个递归函数例如下面这段代码运行起来会报 attempt to call a nil value (global fact2) 错误。 local fact2 function(n)if n 0 thenreturn 1end-- 因为 Lua 语言编译函数体中的 fact2(n-1) 调用时局部的 fact2 尚未定义。return n * fact2(n - 1) -- attempt to call a nil value (global fact2) end print(fact2(10))这是因为 Lua 语言编译函数体中的 fact2(n-1) 调用时局部的 fact2 还未定义所以会在全局中进行搜索所以报错中提示的是 global fact2。 所以可以先进行声明然后在使用就可以避免这一问题。 local fact3 fact3 function(n)if n 0 thenreturn 1endreturn n * fact3(n - 1) end print(fact3(10)) -- 3628800所以如果涉及到递归或者是间接递归可以考虑先将函数变量声明然后再进行赋值。 吾有一惑 可能会有疑惑为什么第一种方式就没有问题 其实只是 Lua 语言帮我们展开了 local function foo(n) body end-- Lua 帮我们展开为以下代码local foo; foo function (n) body end六、作用域外溢 function newCounter()local count 0return function()count count 1return countend endlocal c1 newCounter() print(c1, c1()) -- c1 1 print(c1, c1()) -- c1 2local c2 newCounter() print(c2, c2()) -- c2 1 print(c1, c1()) -- c1 3 print(c2, c2()) -- c2 2 print(c2, c2()) -- c2 3通过 newCounter 返回一个匿名函数达到能够 “访问” count 这就是作用域外溢。 count 的作用域是 newCounter 函数但是因为作为匿名函数返回所以外溢至外部。而且每次调用的 local 都不一样。 七、更换预定义函数 Lua 中可以给一个变量重新定义一个新的函数也可以给一个预定义函数重新定义函数。 例如我们可以将 sin 函数的参数从原来的 弧度 单位改为 角度 单位。 print(更换预定义函数) --- rad 将角度转为弧度 print(更换前使用弧度制, math.sin(math.rad(90))) -- 更换前使用弧度制 1.0 dolocal oldSin math.sinmath.sin function(value)return oldSin(value * (math.pi / 180))end end print(更换后使用角度, math.sin(90)) -- 更换后使用角度 1.0使用 do-end 则将 oldSin 的作用域限制起来了后续的调用只能调用到替换的函数 拓展一下 可以利用这种特性在原有的函数中增加一些项目所需要的代码例如日志输出文件检测等。 八、写在最后 Lua 项目地址Github传送门 (如果对你有所帮助或喜欢的话赏个star吧码字不易请多多支持) 本章相关代码传送门 如果觉得本篇博文对你有所启发或是解决了困惑点个赞或关注我呀后续会分享更多的优质文章。
http://www.hkea.cn/news/14318001/

相关文章:

  • 网站开发前端和后端哪个费时间英文网站常用字体
  • 西充县规划建设局网站网站建设单词
  • 给公司怎么做官方网站聊城网站建设设计开发公司
  • 网站案例分析湖南wordpress重定向循环
  • 网站建设的财务分析wordpress新建页面模板
  • 扬州市开发区建设局网站首页如何建立一个自己的网站啊
  • 中国和城乡建设部网站首页酒店网站案例
  • 中国电力建设股份部官方网站免费手机建站平台
  • 小网站链接怎么找ui设计师工作流程
  • 网站怎么做分享链接地址建设购物网站需要多少费用
  • 菏泽网站建设制作自己的网站如何做推广
  • 找聊城做网站做网站一次付费
  • 邯郸企业网站建设报价wordpress 套件
  • 远程教育网站建设wordpress二级域名
  • 苏州网站开发公司有哪些郑州建设网站设计
  • 网站信用认证可以自己做吗wordpress内容页文件名
  • 成武县住房和城乡建设厅网站没有公司可以做网站吗
  • 网站服务器失去响应全网推广服务流程
  • 如何仿制国外网站主流大型网站开发语言调查
  • 网站建设百度搜不到微网站建设及开发
  • 网站建设服务哪家好 价格多少钱免费网页设计成品
  • 中国建设银行网站首页企业网银自己的商品链接怎么弄
  • 湛江企业网站建站模板网站制作收费标准
  • 网站查询系统电脑网页设计教程
  • 网站链接用处优化营商环境条例解读
  • 地方类门户网站电商美工是做什么的
  • wordpress建的手机网站萝岗网站建设优化
  • 铜陵商城网站建设对网站建设好学吗
  • 如何学好jsp网站开发网站建设投标文件范本
  • 人社网站行风建设的建设和意见给别人搭建网站