当前位置: 首页 > 编程日记 > 正文

Lua基本语法-书写规范以及自带常用函数

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


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

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

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



  • 1
    • String Operation —— 字符串操作
  • 2
    • Table —— 表
  • 3
    • Table Operation —— 表的相关操作
  • 4
    • Class —— 类
  • 5
    • Math —— 数学函数
  • 支持
    • May Be —— 搞开发,总有一天要做的事!


1

String Operation —— 字符串操作


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

举个栗子黑白88

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 中表 { } 的创建方式和赋值

举个栗子黑白88

-- 第一种表创建的方式
-- 表的声明,声明一个空表
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) doprint(MyTable[i])
end
-- 遍历表,同时访问键值。可以用作遍历所有表,不是数字同样可以输出键值
MyTable={name='chinar',high=175,isFemale=false}
for i,v in pairs(MyTable) doprint(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 中自带了表 { } 的一些常用操作函数

举个栗子黑白88

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])--当前第二个元素为66MyTable={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 中类的创建 和 函数的创建

举个栗子黑白88

-- 类的声明
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 中自带了一些数学函数,方便开发者使用

举个栗子黑白88

-- 定义一个函数: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 服务器配置、运行、建站一条龙 !



70

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


END

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

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

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

转载于:https://www.cnblogs.com/chinarbolg/p/9601479.html

相关文章:

linux驱动:音频驱动(一)ALSA

一、【基础知识】 1、J2 《--HPR_OUTHPL_OUT 《-- U13(TLV320AIC3104IRHBR)的HPROUTHPLOUT 2、驱动源码 IPNC_RDK_V3.8.0.1/Source/ti_tools/ipnc_psp_arago/kernel/sound/soc/codecs/tlv320aic3x.c 3、依赖于I2C驱动 4、声卡驱动框架:…

秘籍 | 机器学习数据集网址大全

作者 | Will Badr译者 | Linstancy整理 | Jane出品 | AI科技大本营(ID:rgznai100)要找到一定特定的数据集可以解决各种机器学习问题,是一件很难的事情。越来越多企业或研究机构将自己的数据集公开,已经成为全球的趋势,…

为asa防火墙配置ssh登陆

由于最近事情超多,单位下发某些令人恶心的制度,今天突然说北京分公司和总公司之间要做***的连接,虽然俺是个CCNP,但是对于***来说接触的少之又少,并且工作繁忙,每天头大,北京分公司的安全ie同事…

70.nodejs操作mongodb

转自:https://www.cnblogs.com/whoamme/p/3467374.html 首先安装nodejs mongodb npm install mongodb var mongodb require(mongodb); var server new mongodb.Server(localhost, 27017, {auto_reconnect:true}); var db new mongodb.Db(mydb, server, {saf…

明晚8点公开课 | 用AI给旧时光上色!详解GAN在黑白照片上色中的应用

在改革开放40周年之际,百度联合新华社推出了一个刷屏级的H5应用——用AI技术为黑白老照片上色,浓浓的怀旧风勾起了心底快被遗忘的时光。想了解如何给老照片上色?本次公开课中,我们邀请到了百度高级研发工程师李超,他的…

linux驱动:音频驱动(二)ASoc

五、【ASoC声卡驱动框架】 1、ASoC将嵌入式设备的音频系统从软件层面划分为3个组件 1.1 codec驱动:音频编解码器驱动,与平台无关,实现音频控制项添加、音频接口实现、DAPM(动态音频电源管理)、音频编解码器的IO功能 …

把32位的SharePoint服务器场迁移到64位, 应该怎么做?

总体步骤如下: 1. 迁移已经存在了的数据库服务器到新的数据库服务器. 先迁移这一层的目的是避免可能发生的一些由64位系统对32位系统执行查询或写入操作所引起的性能问题. 2. 迁移WFE服务器到64位环境下. 准备工作: 1. 重新编译已经存在的32位的应用程序和自定义的程序集(web p…

testem方便的web tdd 测试框架使用

备注:单元测试,对于日常的开发是比较重要的,testem 简化了我们的代码编写,以及运行。主要特性:a. 支持的测试框架有:jasmine quint mocha buster.js ,同时也包含一些其他的适配器,支…

程序员老在改Bug,就不能一次改好吗?

作者丨伍杏玲来源 | 程序人生(ID:coder_life)程序员的日常三件事:写Bug、改Bug、背锅。连程序员都自我调侃道,为什么每天都在加班?因为我的眼里常含Bug。但是真的有这么多Bug要改吗?就不能一次改…

一场库文件的远程修复

一场库文件的远程修复系统环境RHEL 4.7一、原因:发现每天早上7点1分备份的数据库文件时间不对,登录上去后date下发现时间是正确。二、尝试解决:1)setup->Timezone configuration-> Asia/Shanghai保存后,发现由原…

linux驱动:音频驱动(四)ASoc之machine设备

linux驱动:音频驱动(四)ASoc之machine设备

Sql server Insert执行的秘密(下) 带外键的INSERT分析

2019独角兽企业重金招聘Python工程师标准>>> 这一篇分析一下带外键表的INSERT的例子。 本文所用的数据表结构如上图所示;其中Blog表上BlogID是自增的主键,并在CreateUserID和CreateTime列上分别建有两个非唯一索引。 我们要往Blog表中插入一…

熬夜写代码,不如换女装入GitHub获上千Star?

作者 | 琥珀出品 | AI科技大本营(ID: rgznai100)程序员如何以合规手段快速获得 GitHub 上千 Star?新年刚过,GitHub Trending 上一个名为“Dress”的开源项目迅速蹿红,并成功掀起了不少程序员及吃瓜群众的热议。项目地址…

CCNp笔记(EIGRP)

EIGRP<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />特性1属于混合路由协议具有距离矢量路由协议的特性&#xff0c;又有链路状态路由协议的特性。2属于高级距离矢量路由协议3快速收敛4保证100%无环路5增量更新6支持默认4条最多…

linux驱动:音频驱动(五)ASoc之codec驱动

linux驱动&#xff1a;音频驱动&#xff08;五&#xff09;ASoc之codec驱动

科大讯飞市值腰斩背后,AI产业集体思考如何落地?

作者丨郭敏本文经授权转载自钛媒体&#xff08;ID&#xff1a;taimeiti&#xff09;【导语】在过去的一年里&#xff0c;科大讯飞受到了多方质疑&#xff0c;质疑的声音不外乎盈利疲软、靠政府补助、技术优势逐渐变弱等&#xff0c;种种质疑背后&#xff0c;其实整个 AI 产业从…

zabbix系列之邮件告警(三)

设置邮件告警有两种方式&#xff1a;1&#xff09;、通过Linux自带的mail发送告警邮件2&#xff09;、通过第三方邮箱发送&#xff08;如QQ邮箱、163邮箱等&#xff09;告警邮件1、修改 zabbx_server.conf 文件,指定脚本路径&#xff0c;没有则添加[rootcentos1 ~]# vim /usr/l…

Python告诉你:为何年终奖多发一元,到手却少两千多?

作者 | shenzhongqiang来源 | Python数据与分析&#xff08;ID&#xff1a;ML_Python&#xff09;年终奖多发一元&#xff0c;到手却要少两千多&#xff0c;甚至更多。听到这个消息的时候&#xff0c;大家是不是觉得有点意外&#xff0c;意外之余还有点淡淡的忧伤&#xff1f;上…

[译]一个系统管理员眼中的DevOps

前言 原文发表在Patrick Debois大神的官网上&#xff0c;传送门>> 通篇围绕运维工作进行阐述&#xff0c;始终是在强调运维人员和开发人员需要通力协作&#xff0c;这大概也是DevOps理念的核心价值所在吧&#xff01;大概是因为作者来自比利时吧&#xff01;翻译的时候还…

linux驱动:音频驱动(六)ASoc之codec设备

linux驱动&#xff1a;音频驱动&#xff08;六&#xff09;ASoc之codec设备

屏蔽“网页上有错误”提示,屏蔽java script 错误的代码

<script>window.onerrorhide_error_message;functionhide_error_message(){returntrue;}</script>代码再简写一点&#xff0c;就是&#xff1a; <script type"text/java script ">window.onerrorfunction(){returntrue;}</script >原来只要让…

linux驱动:音频驱动(七)交叉编译alsa库及工具集alsa-utils

0、编译时用到的库 libunistring0_0.9.3-5_i386.deb libgettextpo0_0.18.1.1-5ubuntu3_i386.deb gettext_0.18.1.1-5ubuntu3_i386.deb 1、下载源码 alsa-lib-1.0.27.tar.bz2 alsa-utils-1.0.27.2.tar.bz2 一、交叉编译alsa lib 1、su 进入root用户 2、进入/home/MY/evm-lin…

Python一键转Java?“Google翻译”你别闹

作者 | 若名出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;近日&#xff0c;Reddit 上有网友放出了一张疑似 Google 翻译添加了能让编程语言间互相转换的图片&#xff0c;立即引发数千名程序员网友的跟帖热议。图片显示&#xff0c;Google 翻译中添加了编程语言进行…

我所感兴趣的iOS10新特性

###SiriKit Siri API 的开放自然是 iOS 10 SDK 中最激动人心也是亮眼的特性。SiriKit 为我们提供一全套从语音识别到代码处理&#xff0c;最后向用户展示结果的流程。Apple 加入了一套全新的框架 Intents.framework 来表示 Siri 获取并解析的结果。你的应用需要提供一些关键字表…

如何将三万行代码从Flow移植到TypeScript?

作者 | David Gomes译者 | 弯月责编 | 郭芮来源 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;【编者按】在内存安全中&#xff0c;类型安全是很重要的一个命题。为了确保JavaScript项目运行的类型安全&#xff0c;本文的作者介绍了2016年时使用Flow的经历&#xff1…

CRM——插件流程回顾

1. Django项目启动 自动加载文件 制作启动文件1. 注册strak 在apps.py 类里面增加如下 def ready(self):from django.utils.module_loading import autodiscover_modulesautodiscover_modules("stark")2. 在已经注册的app中创建stark.py文件 加载2. 在stark中模仿Adm…

Linux驱动:TI达芬奇系列kernel中cup类型的判断,以cpu_is_ti81xx()为例

cpu_is_ti81xx() 为真 cpu.h (arch\arm\plat-omap\include\plat) 1、 # define cpu_is_ti81xx() is_ti81xx() # define cpu_is_ti814x() is_ti814x() 2、 #define IS_TI_CLASS(class, id) \ static inline int is…

IT人请注意你的身体![转]

IT人请注意你的身体![转]IT一直是很多人的梦想&#xff0c;外行的无数人挤破了脑袋想进这个圈子&#xff0c;在一般人看来&#xff0c;他们是时代的宠儿&#xff0c;他们可以不修边幅&#xff0c;他们工作时间可以身着便装&#xff0c;他们可以不受早九晚五的束缚&#xff0c;他…

WF4.0实战(六):控制WPF动画

这个例子改造了王晓冬老师的&#xff1a;用WF流程控制WPF动画。 本文用一个小例子演示了在WF中定义两个操作步骤,用来控制WPF页面元素的动画。王冬老师当时使用的是WF3.0,现在我改成WF4.0。 先看效果&#xff1a; 活动&#xff1a; 流程&#xff1a; 实现&#xff1a;实现很简单…