1、lua语言,变量、字符串、逻辑运算、分支判断、函数
[官方文档](https://doc.openluat.com/wiki/3?wiki_page_id=630)
-
print() 打印函数,注意这里和C 不一样,类似于python 行尾不需要 “ ; ”
-
nil 类型,表示没有任何有效值,只要没有声明的变量,它就是
nil
,那么没有声明的函数呢? -
赋值语句, 可以用 " , " 进行多个变量的赋值。较为智能,当左值多于右边时,未赋值的自动补充为
nil
, 如果多于右值则多的值被忽略。
lua 下的字符串string 类型
-- 单印号间的字符串
string1 = 'abc'
-- 双引号间的字符串
str2 = "abc"
-- [[和]] 之间的字符串,(这里有点特殊,它可以输出换行, 而不像C 中使用 \n \r 回车或者换行)(当然lua 中也有\r \n 这种转义字符)
str3 = [[Lua语言挺方便的]]
str4 = [[Lua语言
甚至能换行
这是行尾]]
print(string1)
print(str2)
print(str3)
print(str4)
type( 形参 ) 函数是用来返回 该形参是什么参数类型的一种函数
转义字符
string 类型的拼接
使用 ..
来表示string 类型的拼接,
类似于java 中 System.out.println("abc" + "def");
,或者 C++ 中 重载的 <<
修饰符
number 转string
如果要使用 数字 或者别的类型的变量和string进行拼接,则有 tostring(value) 这个函数进行操作。
string 转 number
比较运算符
lua 语言把 false 和nil 类型都看作 false, 其他的都看作为true (包括0 这个值,也相当于true,这一点和C 不一样)
==
等于运算符,检测两个值是否相等,相等返回true,否则返回false~=
不等于运算符,检测两个值是否相等,相等返回false,否则返回true。C语言中!=
才嗲表不等于
逻辑运算符
关键字:
and
or
not
, 与或非 ,(在C语言中使用 & , | , ! 来进行表示,这点不一样,反而喜欢lua语言这一点 )分支判断
-
条件判断,
if then
n = 10 if (n < 11) then print("n < 11") end
-
多分枝
注意:
elseif
else
都是可选项,而end
不可省略
函数
-
在lua 中,函数也是一种变量类型,可以把函数赋值给另外一个变量,这样,这两个变量就会指向同一段函数,(这个有点点像 C 中的宏定义 或者 typedef)
-
local 变量,我们之前创建的都是全局变量,生命周期在整个代码运行周期,所以新增了一个字段
local
创建一个局部变量,临时使用,自动销毁并释放内存资源,主要节约内存资源,在使用中尽量使用
local 变量
方便lua 虚拟机自动回收内存空间,减少资源的占用。str = 'abc' function connect() local s = str .. 'def' end print(s,str) -- nil abc
-
函数参数
注意:函数的形参自动内建成一个
local
的变量,修改这些数据不会影响外部数据。注意,局部变量可以和全局变量重名,这一点和C 类似。局部变量和全局变量重名,修改局部变量的值不会影响到全局变量(除非使用特定关键字)。 -
函数返回值
注意:
-
这里函数名前面没有参数类型,返回值就看你是否
return
。(我认为这一点有利有弊,写一个新函数的时候,如果要限定返回类型,就必须,,这一点更喜欢C的风格。) -
返回值可以是多个,接收的时候用2个甚至多个参数接收,参数名在接收的时候自动定义。
-