当前位置:网站首页>Lua快速上手
Lua快速上手
2022-07-27 23:01:00 【两片空白】
目录
声名变量
在lua中,赋值一个变量就相等于声名了一个变量。没有被声名的变量,该变量值等于nil(相当于c语言的NULL)。


注意:在lua里声名的变量默认是全局变量。在其他文件中也可以使用。作用和c语言相同
如果要让变量变为局部变量,在变量前加上local关键字。
local a = 10赋值语言可以多变量赋值:

number类型和运算符
c语言中有很多内置类型,int,char,float,double等,在lua中,这些类型统一都是number类型。
lua语言也支持16进制赋值和科学计数法。

运算符:lua基本上支持c语言中的运算符,比如加减乘除,幂,左移右移等。
string类型
声名字符串变量,也是通过赋值声名,字符串使用单引号或双引号皆可,并且lua支持转义字符。

使用"[[ ]]",也是声名字符,并且字符串是原原本本保存在里面,不会有什么转义。

字符串的连接符号,".."

字符串和数字互相转化

如果tonumber转换失败返回nil

在字符串变量前加一个'#'可以获取字符串的长度。

函数
函数的格式为:


返回值,如果函数没有返回,默认返回nil,有返回,返回对应值。


函数返回值,也可以返回多个值

table数组
数字下标
数字下标的使用和c语言里的数组差不多,里面可以保存数字,字符串,另外一个table,或者函数等。但是起始时从1号小标开始的。

如果访问了没有定义的table下标,该值为nil,但是也可以进行赋值。

可以使用'#'来获取table元素的个数。

table的接口
插入接口 insert
也可以使用table提供的insert接口,去插入元素,或者在指定位置插入。

移除接口remove
移除某个位置的元素,并且会返回移除的元素。

字符串下标的table
相当于c语言中的结构体,可以用数组的形式(数组的key必须是字符串)或者'.'的形式访问。
下标用字符串表示。

插入元素

移除元素
使用不了table的remove接口,可以将该字符串对应值置nil。

总结移除元素两种方法:置空或使用table接口remove
1. 数字下标,可以使用remove和置空
2. 字符串下标,可以使用置空。
全局table——_G
全局变量都保存在_G全局table里。

注意:其实table也是一个全局变量,他的类型是一个table,名字也是table,里面包含了元素insert和remove函数。

lua里的真和假
lua中有一种bool类型,只有true和false两种值。

在lua中只有false和nil表示假,其他表示真。0表示真
注意:lua中的逻辑操作and,or可以直接放回对应值。
and如果都是真,返回最后一个为真的值,如果一真一假,返回对应假的值,如果全为假,返回第一个假的值。
or如果都是真,返回第一个为真的值,如果一真一假,返回对应真的值,如果全为假,返回最后一个假的值。
利用该现象可以实现短路求值。
比如:
分支语句
用then表示后面要执行的分支语句,用end表示分支语句的结束。

循环语句
lua中有三种循环,分别是for循环,while循环和repeat循环。while和repeat循环使用差不多。
for循环
for 变量定义,结束值,步长(不写默认是1) do
代码块
end

注意:
1. for这行定义的变量作用域只在for循环中,但是在for循环中不能修改出了for循环就没有意义了。
2. 并且该变量只能在for循环中进行访问,不能进行修改。进行修改时,向但与在for循环里新建了一个局部变量。

3. 可以使用break关键字,没有continue关键字。

while循环
while 条件 do
语句
条件变更
end
支持break

补充:
lua里的字符串和c语言中的字符数组很像。可以使用string的char函数构成lua的字符串,用string的byte获得字符串中的某一位字符。并且会将0保存在字符串中,不会影响字符串的长度。

边栏推荐
- Six relationships of UML class diagram, the best way to learn and understand
- 国产NB-IoT芯片厂商芯翼信息科技获2亿元A+轮融资
- C language programming | explanation and Simulation of offsetof macro
- Cross desktop web container evolution
- 110. In depth introduction to sap ui5 fileuploader control - why do you need a hidden iframe
- Use of swarm task task
- The cooperation between starfish OS and metabell is just the beginning
- Shenzhen Huaqiang announced that it plans to invest no more than 20million yuan in BYD semiconductor
- JS global function method module exports exports
- 学习笔记12:Eratosthenes筛选法求素数(100以内) 和 魔方阵
猜你喜欢

node-red与TDengine交互

氧气温湿度模组

Redis-哨兵模式

Introduction to the browser video frame operation method requestvideoframecallback()

文件系统的层次结构

浏览器视频帧操作方法 requestVideoFrameCallback() 简介

Examples of application of JMeter in performance testing

《安富莱嵌入式周报》第275期:2022.07.18--2022.07.24

EWM收货ECC交货单校验逻辑问题
![[300 opencv routines] 241. Scale invariant feature transformation (SIFT)](/img/7a/a764c779c3162920c832325f89f340.png)
[300 opencv routines] 241. Scale invariant feature transformation (SIFT)
随机推荐
BigDecimal常用API
Starfish Os打造的元宇宙生态,跟MetaBell的合作只是开始
Shell系统学习之循环结构
Node red interacts with tdengine
S-RPN: Sampling-balanced region proposal network for small crop pest detection
Use of swarm task task
0-1 knapsack problem
如何解决12,000家中小客户的元器件采购痛点?告别加班!
Vandermond convolution learning notes
BigDecimal common API
node-red与TDengine交互
共创文旅新篇章|新起典与国华文旅签订战略合作协议
Code random notes_ Hash_ 1002 find common characters
Oracle错误: ORA-01722 无效数字
氧气温湿度模组
How to clearly understand and express IAAs, PAAS and SaaS?
Six relationships of UML class diagram, the best way to learn and understand
Xinyi information technology, a domestic NB IOT chip manufacturer, received 200million yuan of a+ round financing
4月全球智能手机出货同比下滑41%,华为首次超三星成全球第一
The total investment is nearly 1.6 billion yuan! Qianzhao optoelectronics VCSEL and high-end LED chip projects officially started

