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

如何承接设计网站建设站长是什么级别

如何承接设计网站建设,站长是什么级别,网页设计网站有哪些,深圳网站建设服务公文章目录 Table的一万种用法二维数组类和结构体Table操作insert & removesortconcat 接上文【Lua学习笔记】Lua进阶——Table,迭代器 Table的一万种用法 二维数组 a {{ 1, 2, 3 },{ 4, 5, 6 }, } print(#a) -->2 for i1,#a dob a[i]for j1,#b doprint(b[…

在这里插入图片描述

文章目录

  • Table的一万种用法
    • 二维数组
    • 类和结构体
    • Table操作
      • insert & remove
      • sort
      • concat

接上文【Lua学习笔记】Lua进阶——Table,迭代器


Table的一万种用法

二维数组

a = {{ 1, 2, 3 },{ 4, 5, 6 },
}
print(#a) -->2
for i=1,#a dob = a[i]for j=1,#b doprint(b[j])end
end
应该不用解释吧?

类和结构体

Lua是面向过程的,所以想要实现面向对象只能在形式上模拟。
那么面向对象要实现什么?继承封装多态,这些暂且不谈,首先一个类模块应当需要成员变量和成员方法。

car = {color = "red",size = "big",StartEngine = function()print("汽车,启动!")end,
}
car.StartEngine();
--在table外声明方法
car.StopEngine = function()print("停车")
end
car.StopEngine();
--另一种声明方式
function car.Speaker()print("嘟嘟嘟")
end
car.Speaker()
输出:
汽车,启动!
停车
嘟嘟嘟

上述代码确实看起来很像类,但是应当记住它是个table,别真的把它当作面向对象了,例如下面:

car = {color = "red",size = "big",StartEngine = function()print(color)end,
}
car.StartEngine();
输出
nilcar = {color = "red",size = "big",StartEngine = function()print(car.color)end,
}
car.StartEngine();
输出
red

很简单,如果直接print(color),那么color则是我们新定义的一个全局变量,它没有赋值自然是nil。
而想要打出red,就需要print(car.color),因为我们要打印的不是color,而是car这个table中的一个元素!

car = {color = "red",size = "big",StartEngine = function()print(self.color)end,PrintColor = function (t)print(t.color)end
}
car.PrintColor(car);
car:PrintColor();
输出:
red
red

lua提供了一个语法糖,当我们用冒号调用方法时,会把调用者作为第一个参数传入方法中

function car:PrintSize()  --相当于function car.PrintSize(car)print(self.size)
end
car.PrintSize(car);
car:PrintSize()
car:PrintSize(car)
输出:
big
big
big

冒号主要就是为了在函数调用时使用self关键字,self不同与this,它代表的应当是这个冒号传入的参数。除了提供便利性之外,冒号还会为我们节省一条指令。有种脱裤子放屁的美。


Table操作

insert & remove

t1 = {{ age = 1, name = "a" },{ age = 2, name = "b" },
}
t2 = { age = 3, name = "c" } --注意t2是一维的for i = 1, #t1 dob = t1[i]print(b)
end
print("插入后")
table.insert(t1,t2)
for i = 1, #t1 dob = t1[i]print(b)
end
print(t1[1].name)
print(t1[2].name)
print(t1[3].name)table: 00A2A580
table: 00A2A4B8
插入后
table: 00A2A580
table: 00A2A4B8
table: 00A2A5D0
a
b
c

执行insert后,我们观察地址不难发现,新数据被插入到尾部了,同样的,执行table.remove方法也会移除最后一个索引的元素。

table.insert(t1,2,t2)
for i = 1, #t1 dob = t1[i]print(b)
end
print(t1[1].name)
print(t1[2].name)
print(t1[3].name)a
c
btable.remove(t1,2,t2)
for i = 1, #t1 dob = t1[i]print(b)
end
print(t1[1].name)
print(t1[2].name)
print(t1[3].name) --报错
a
b

lua也提供了带position值的insert和remove,insert会直接插入到pos位置并将其后的元素都后移一个单位,而remove则会删除对应位置,并将其后元素都前移一个单位

sort

table.sort排序用法

t = { 2, 5, 5, 3, 6 }
table.sort(t)
for index, value in ipairs(t) doprint(value)
end
print("--------")
table.sort(t, function(a, b)if a>b thenreturn trueend
end)
for index, value in ipairs(t) doprint(value)
end输出:
2
3
5
5
6
--------
6
5
5
3
2

知道升序和降序用法即可,默认升序,使用a>b reutrn true可以修改为降序猜想排序function与冒泡排序有关

concat

t = { 5, 5, 2, 3, 6 }
str = table.concat(t,",")
print(str)5,5,2,3,6str = table.concat(t,",",2,5)
print(str)5,2,3,6

使用table.concat方法,其返回值是字符串,所以我们拼接时只能用number和string类型的,此外别忘了需要把返回值赋值来接收最后处理的结果

http://www.hkea.cn/news/127342/

相关文章:

  • 传奇手游发布网站seo排名优化方式
  • 网站建设明细报价外链信息
  • 哪个网站做漫画可以有钱营销型网站设计
  • wordpress在线视频直播湖南正规关键词优化
  • 花木企业网站源码全网推广的方式
  • 网站开发商怎么关闭图片显示站长之家新网址
  • 灯饰如何做网站推广纯手工seo公司
  • 晋中公司做网站seo站长之家
  • 到哪里找人做网站优化seo培训班
  • 深圳网站开发哪家专业搜索到的相关信息
  • 湖北武汉网站制作引擎搜索下载
  • 做网站登录的需求分析seo点击排名工具有用吗
  • 诸暨住房和城乡建设委员会网站怎么制作网站?
  • 昆明cms建站模板视频号排名优化帝搜软件
  • 商务咨询网站源码重庆网站建设哪家好
  • 建设部网站从何时可以查询工程师证深圳全网推广服务
  • 网页制作工具的选择与网站整体风格是有关系的友情链接论坛
  • 免费商会网站模板百度推广账号
  • 玄武模板网站制作品牌关键词排名点击软件网站
  • 网站title的写法微信软文怎么写
  • 设计企业网站流程磁力引擎
  • 橙色企业网站模板域名注册购买
  • 培训建设网站线上推广产品
  • 写作网站不屏蔽全网关键词指数查询
  • wordpress手机uiseo关键词的选择步骤
  • 自己制作网页的步骤windows优化大师在哪里
  • 黑龙江企业信息系统seo推广优化外包公司
  • wordpress+增加域名赣州网站seo
  • 政府门户网站建设思路怎样优化网络
  • 厦门个人网站建设百度账户代运营