Lua基本语法-书写规范和常用函数


本文提供全流程,中文翻译。

Chinar坚持将简单的生活方式,带给世人!

(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例)



1

String Operation —— 字符串操作

Lua 中自带了一些操作字符串的函数

name="name is chinar,hello world.CSDN"

-- string.lower —— 字符串转:小写
print(string.lower(name)) -- string.upper —— 字符串转:大写
print(string.upper(name)) -- string.sub —— 字符串提取字符:从name中的第1个到第6个(算上空格)
print(string.sub(name,1,6)) -- string.find —— 字符串查找字符:从name中找字符串 hel,返回下标表示从几到几
print(string.find(name,'hel')) -- .. —— 字符串拼接
print('fps://'..name)

输出后:

name is chinar,hello world.csdn
NAME IS CHINAR,HELLO WORLD.CSDN
name i
16 18
fps://name is chinar,hello world.CSDN

2

Table —— 表

Lua 中表 { } 的创建方式和赋值

-- 第一种表创建的方式
-- 表的声明,声明一个空表
MyTable={}
-- 表的赋值
MyTable[1]=33
MyTable[3]='chinar'
-- 表的赋值 下边两种是相同的,都表示键为:name.所以后边的hello world 会覆盖掉 chianr work
MyTable['name']='chianr work'
MyTable.name='hello world'
-- 输出值
print(MyTable[1],MyTable['name'],MyTable.name) -- 第二种表创建的方式
-- 表声明,并直接赋值完成初始化。如果名字重复,会直接覆盖之前的表
MyTable={name='chinar',high=175,isFemale=false}
-- 输出MyTable中的isFemale为:false
print(MyTable.isFemale) -- 第三种创建方式
-- 对应的键为下标,这种表由于全部都是数字,所以可以直接用for循环直接遍历
MyTable={66,777,8888,99999,000000,1}
print(MyTable[1])
-- 遍历表,#MyTable可以获取表的长度
for i=1,#(MyTable) do
print(MyTable[i])
end
-- 遍历表,同时访问键值。可以用作遍历所有表,不是数字同样可以输出键值
MyTable={name='chinar',high=175,isFemale=false}
for i,v in pairs(MyTable) do
print(i,v)
end

输出后:

33  hello world hello world
false
66
66
777
8888
99999
0
1
name chinar
isFemale false
high 175

3

Table Operation —— 表的相关操作

Lua 中自带了表 { } 的一些常用操作函数

MyTable={'dd',66,777,8888,99999,000000,1}
-- table.concat()合并表中的字符串,值。输出一长串的字符串
print(table.concat(MyTable)) -- table.insert 在表中插入一个元素
table.insert(MyTable,4,"chianr")--相当于MyTable[4]="chianr"
print(MyTable[4]) -- 移除指定位置数据
print(MyTable[1])--当前第二个元素为dd
-- 移除第二个元素
table.remove(MyTable,1)
print(MyTable[1])--当前第二个元素为66 MyTable={66,777,8888,99999,000000,1}
-- table.sort 从小到大排列
table.sort(MyTable)
print(table.concat(MyTable)) -- table.unpack返回一个指定范围的数组
print(table.unpack(MyTable,2,3))

输出后:

dd6677788889999901
chianr
dd
66
0166777888899999
1 66

4

Class —— 类

Lua 中类的创建 和 函数的创建

-- 类的声明
People={} -- 创建一个私有变量this来代替People,方便书写
local this=People -- 类变量
People.hp=100
People.sp=1000 -- 第一种声明方法的操作
People.Fangfa=function( ... )
print('chinar')
end -- 第二种声明方法的操作 —— 这种较为常用
function People.Run( ... )
this.Fangfa()--方法中调用已经声明的方法
print(this.hp,"Run")
end -- 调用方法
People.Run()

输出后:

chinar
100 Run

5

Math —— 数学函数

Lua 中自带了一些数学函数,方便开发者使用

-- 定义一个函数:Chinar
-- 返回值为:参数a1+a2
function Chinar(a1,a2)
return a1+a2
end -- 定义变量fun接收函数Chianr的返回值
fun=Chinar(66,88) -- 输出
print(fun) -- 求绝对值
print(math.abs(-66)) -- 求最大数
print(math.max(1,4,555,3,66,999)) -- 求随机数,需要多些几个才会有不同的值
print(math.random())
print(math.random()) -- 求平方根
print(math.sqrt(9)) -- 其余的几乎都是求三角函数的夹角
print(math.sin(60))
print(math.cos(60))
print(math.tan(60))

输出后:

154
66
999
0.001251220703125
0.56356811523438
3.0
-0.30481062110222
-0.95241298041516
0.32004038937956

支持

May Be —— 搞开发,总有一天要做的事!

拥有自己的服务器,无需再找攻略!

Chinar 提供一站式教程,闭眼式创建!

为新手节省宝贵时间,避免采坑!

先点击领取 —— 阿里全产品优惠卷 (享受最低优惠)



1 —— 云服务器超全购买流程 (新手必备!)



2 —— 阿里ECS云服务器自定义配置 - 购买教程(新手必备!)



3—— Windows 服务器配置、运行、建站一条龙 !



4 —— Linux 服务器配置、运行、建站一条龙 !




" role="presentation">

技术交流群:806091680 ! Chinar 欢迎你的加入


END

本博客为非营利性个人原创,除部分有明确署名的作品外,所刊登的所有作品的著作权均为本人所拥有,本人保留所有法定权利。违者必究


对于需要复制、转载、链接和传播博客文章或内容的,请及时和本博主进行联系,留言,Email: ichinar@icloud.com


对于经本博主明确授权和许可使用文章及内容的,使用时请注明文章或内容出处并注明网址

Lua基本语法-书写规范以及自带常用函数的更多相关文章

  1. Shell脚本书写规范

    在日常的运维工作中,Shell脚本肯定是必不可少的工作内容.为方便问题排查.脚本执行历史问题追踪.方便大家共同维护,从网上搜罗结合以往的经验教训拟定以下Bash脚本书写规范.欢迎各位同学指正或补充. ...

  2. html和css书写规范

    HTML 规范 分离的标记.样式和脚本 结构.表现.行为分离 在可能情况下验证你的标记 使用编辑器验证你的标记是否正确,一般编辑器都自带有这个功能. 技术不支持的时候使用备胎,如canvas 编码格式 ...

  3. [Java拾遗一] XML的书写规范与解析.

    前言今天天气大好, 起了个大早开始总结一些常用的基础知识. XML一直来说都很陌生, 使用大多是用于配置文件, 之前并没有细究过其中的约束规范, 今天刚好没事来学习并总结下. 1,XML基础介绍 XM ...

  4. JAVA书写规范

    java程序书写规范 命名规范    1.一般概念        1.尽量使用完整的英文描述符        2.采用适用于相关领域的术语        3.采用大小写混合使名字可读        4 ...

  5. WEB标准:标准定义、好处、名词解释、常用术语、命名习惯、浏览器兼容、代码书写规范

    1. WEB标准是什么? “WEB标准”是一系列标准的总称.一般的误区经常把WEB标准说成DIV+CSS.准确的说法应该是:采用W3C推荐的WEB标准中的XHTML1.1结合CSS2.0 样式表制作页 ...

  6. HTML&CSS书写规范

    第一部分:HTML书写规范: 1.1 HTML整体结构: 1.1.1:HTML基础设施: 文档以"<!DOCTYPE...>"首行顶格开始,推荐使用"< ...

  7. 【WEB前端】CSS书写规范

    古语有云:不以规矩,不成方圆.不管是国还是家还是...都得有规矩加以约束.同样,在我们程序猿的代码中也有一定的规矩——W3C标准,但是我今天不会讲那么高深的道理,我只想说说,我近些日子在开发中所总结出 ...

  8. Lua基础语法讲解

    Lua 是什么? Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能. Lua 是巴西里约热内卢天主教大学( ...

  9. oracle过程书写规范

    ORACLE存储过程编码规范 1.1         变量规范 Ø        变量名全部采用小写,局部变量名使用“v_”开头,输入参数以“i_开头,输出参数以“o_”开头,输入输出参数用io_开头 ...

随机推荐

  1. 《A_Pancers团队》作业5—团队项目需求改进与系统设计

    一:团队项目需求改进 1. <音乐播放软件需求规格说明书>的不足 在上周的<音乐播放软件需求规格说明书>我们还需要改进的地方有:1.搜索功能:2.界面的简洁美观化:3.按键的重 ...

  2. python3.6 ImportWarning: can't resolve package from __spec__ or __package__, falling back on __name__ and __path__

    Cython emulates Python 2-style implicit relative imports on Python 3 Cython的锅(也就是绝大多数下载安装的python)新的i ...

  3. Spring AMQP 源码分析 04 - MessageListener

    ### 准备 ## 目标 了解 Spring AMQP 如何实现异步消息投递(推模式) ## 前置知识 <RabbitMQ入门_05_多线程消费同一队列> ## 相关资源 Quick To ...

  4. 多线程(JDK1.5的新特性互斥锁)

    多线程(JDK1.5的新特性互斥锁)(掌握)1.同步·使用ReentrantLock类的lock()和unlock()方法进行同步2.通信·使用ReentrantLock类的newCondition( ...

  5. codeforces 578b//"Or" Game// Codeforces Round #320 (Div. 1)

    题意:n个数字,最多操作k次,每次乘x,要使结果数组的与值最大. 能推断出结果是对一个元素操作k次,并且这个元素的二进制最高位比较大.并不一定是取最大的,比如1100和1010,乘以一次2,两种选法分 ...

  6. Andriod的Http请求获取Cookie信息并同步保存,使第二次不用登录也可查看个人信息

    Android使用Http请求登录,则通过登录成功获取Cookie信息并同步,可以是下一次不用登录也可以查看到个人信息, 注:如果初始化加载登录,可通过缓存Cookie信息来验证是否要加载登录界面.C ...

  7. Vue自动化工具(Vue-CLI)

    一.组件的概念 1.概念 组件(Component)是自定义封装的功能.在前端开发过程中,经常出现多个网页的功能是重复的,而且很多不同的网站之间,也存在同样的功能. 而在网页中实现一个功能,需要使用h ...

  8. mysql日期查询大全

    -- 查询昨日一整天的数据 DAY) ,'%Y-%m-%d 23:59:59') AS '昨日结束时间' -- 查询今日开始到当前时间的数据 DAY) ,'%Y-%m-%d %H:%i:%s') AS ...

  9. python-day15函数递归

    1.递归: 在函数内,调用自己.  (技巧: 每次调用时,函数前面需加上return,这样返回值就可以一层一层 的返回去) #def age(n):#    if n == 1:#        re ...

  10. hdu-1849-nim模板

    Rabbit and Grass Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...