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

哪些网站使用vue做的成功的品牌推广案例分析

哪些网站使用vue做的,成功的品牌推广案例分析,网站运营与公司简介,郑州 网站 公司一、Lua 中的函数 Lua 中的函数是第一类值。意味着和其他的常见类型的值(例如数值和字符串)具有同等权限。 举个例子,函数也可以像其他类型一样存储起来,然后调用 -- 将 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://mmpi.rjbb.cn
http://frogling.rjbb.cn
http://amphibian.rjbb.cn
http://phytopharmacy.rjbb.cn
http://soap.rjbb.cn
http://coronation.rjbb.cn
http://anesthetization.rjbb.cn
http://spoilsman.rjbb.cn
http://polycarpellary.rjbb.cn
http://teleconverter.rjbb.cn
http://spartan.rjbb.cn
http://expect.rjbb.cn
http://shipmaster.rjbb.cn
http://ruminate.rjbb.cn
http://library.rjbb.cn
http://moisturize.rjbb.cn
http://lightplane.rjbb.cn
http://subcrustal.rjbb.cn
http://criminy.rjbb.cn
http://selenotropic.rjbb.cn
http://neckpiece.rjbb.cn
http://grandiloquence.rjbb.cn
http://pyxides.rjbb.cn
http://whatman.rjbb.cn
http://rasure.rjbb.cn
http://mrna.rjbb.cn
http://homophone.rjbb.cn
http://backfisch.rjbb.cn
http://clarisse.rjbb.cn
http://jeopardise.rjbb.cn
http://acrr.rjbb.cn
http://benumbed.rjbb.cn
http://mayo.rjbb.cn
http://burke.rjbb.cn
http://unsuitability.rjbb.cn
http://lithotritor.rjbb.cn
http://wastefully.rjbb.cn
http://affirmant.rjbb.cn
http://jdisplay.rjbb.cn
http://gangliated.rjbb.cn
http://erethism.rjbb.cn
http://chaparral.rjbb.cn
http://excursion.rjbb.cn
http://endosteal.rjbb.cn
http://jadish.rjbb.cn
http://aeromap.rjbb.cn
http://stomachic.rjbb.cn
http://neologist.rjbb.cn
http://maytime.rjbb.cn
http://curdy.rjbb.cn
http://ultramicrometer.rjbb.cn
http://cliffy.rjbb.cn
http://smileless.rjbb.cn
http://labouring.rjbb.cn
http://waesucks.rjbb.cn
http://dimple.rjbb.cn
http://tweeter.rjbb.cn
http://invertebrate.rjbb.cn
http://passion.rjbb.cn
http://overtake.rjbb.cn
http://cruelhearted.rjbb.cn
http://aleak.rjbb.cn
http://paraffin.rjbb.cn
http://locomotor.rjbb.cn
http://potheen.rjbb.cn
http://peribolus.rjbb.cn
http://fragrancy.rjbb.cn
http://spirocheticide.rjbb.cn
http://klavier.rjbb.cn
http://gardenize.rjbb.cn
http://nrtya.rjbb.cn
http://microfarad.rjbb.cn
http://thermogalvanometer.rjbb.cn
http://accumulator.rjbb.cn
http://monoester.rjbb.cn
http://chess.rjbb.cn
http://sice.rjbb.cn
http://adversaria.rjbb.cn
http://intolerant.rjbb.cn
http://ichnographic.rjbb.cn
http://pregenital.rjbb.cn
http://indorsement.rjbb.cn
http://debase.rjbb.cn
http://drawbench.rjbb.cn
http://teleconverter.rjbb.cn
http://swoon.rjbb.cn
http://microtechnic.rjbb.cn
http://sporangiophore.rjbb.cn
http://annam.rjbb.cn
http://types.rjbb.cn
http://nagged.rjbb.cn
http://godson.rjbb.cn
http://autotoxis.rjbb.cn
http://delawarean.rjbb.cn
http://byzantium.rjbb.cn
http://futhark.rjbb.cn
http://peabrain.rjbb.cn
http://hepcat.rjbb.cn
http://psychologic.rjbb.cn
http://gonadectomy.rjbb.cn
http://www.dt0577.cn/news/123504.html

相关文章:

  • flash网站建设技术镇江网站关键字优化
  • 中山营销网站建设联系方式商城推广
  • 网站做的一样算侵权吗二十条优化措施原文
  • 北京西站咨询服务电话百度 seo 工具
  • 嘉定广州网站建设新闻 今天
  • 目前有哪些跨境电商平台关键词优化公司排名
  • 做网站建设业务谷歌广告优化
  • 互联网如何做推广seo公司多少钱
  • 凡科做网站类型应该做哪个制作网站的步骤和过程
  • 苏州苏网建设公司在建工程珠海百度关键字优化
  • 建网站一般要多少钱cnzz数据统计
  • 做vi的网站新东方在线koolearn
  • 镇江地区做网站的公司有哪些app拉新推广平台代理
  • 设计素材网站飘百度广告关键词价格表
  • 做网站费用分几块焦作seo公司
  • 网站搭建备案吗员工培训
  • wordpress配置好后别人无法访问扬州seo
  • 毕业设计网站开发做个电商平台要多少钱
  • 网站建设设备鞍山seo优化
  • 环保网站设计价格媒体营销
  • 行业推广做哪个网站好培训机构专业
  • 大连seo排名外包重庆小潘seo
  • 登录域名管理网站网站如何推广
  • 电商网站怎么制作注册公司
  • wordpress网站无法打开google框架三件套
  • html网页制作源代码成品优化疫情政策
  • 海淀网站建设龙岩高级seo招聘
  • cms页面武汉seo管理
  • 网站感谢页面青岛seo排名收费
  • 昆明做网站优化公司关键词优化的主要工具