本帖最后由 落花无痕 于 2024-6-23 12:45 编辑
八大基本数据类型:nil:nil是一个简单的类型,用来表示这个变量还没有被赋值。如果给一个变量赋值为nil,那么实际上表示删除改变量的意思,跟Java里的null相似boolean:包含俩个值:True和FalseNumber:表示双精度类型的实浮点数String:字符串,由一对双引号或单引号括起来。当一个字符串包含多行时,可以在第一行中以 [[ 开头,在最后一行中以 ]] 结尾,那么在 [[ 与 ]] 括起来的这多行内容就是一个字符串。换行符为字符串“\n”Table:类似于Java中的数组,但比数组的功能更强大,更灵活Fuction:由C 或Lua编写的函数Thread:协同线程,是协同函数的执行体,即正在执行的协同函数Userdata(用户数据和线程):一种用户自定义数据,用于表示一种由应用程序或 C/C++ 语言库所创建的类型,可以将任意 C/C++ 的任意数据类型的数据存储到Lua变量中调用
标识符:程序设计语言中的标识符主要包含保留字、变量、常量、方法名、函数名、类名等。Lua的标识符由字母、数字与下划线组成,但不能以数字开头。Lua是大小写敏感的
保留字:Lua常见的保留字共有22个。不过,除了这22个外,Lua中还定义了很多内置的全局变量,这些内置全局变量的一个共同特征就是,以下划线开头后跟全大写字母,所以我们在定义这些标识符的时候不能与这些保留字、内置全局变量重复。 and | break | do | else | elseif | end | false | for | function | if | in | local | nil | not | or | repeat | return | then | true | until | while | goto | | |
变量:Lua是弱类型语言,变量无需类型声明即可直接使用,变量分为全局变量与局部变量。 Lua中的默认变量都是全局变量,即使声明在语句块或函数里面。全局变量一但声明,在当前文件中的任何地方都可以访问。局部变量local相当于Java中的private变量,只能在声明的语句块中使用
其他运算符:操作符 | 描述 | 示例 | .. (俩个点) | 字符串连接符 | a..b ,其中a为“Hello”,b为“World”。输出结果为“HelloWorld” | # | 返回字符串或表的长度 | #“Hello” 返回5 |
函数:Lua中函数的定义是以function开头,后跟函数名与参数列表,以end结尾,其可以没有返回值,也可以一次返回多个值
固定参函数:Lua中的函数在调用时与Java语言中方法的调用是不同的,其不要求实参的个数必须与函数中形参的个数相同。如果实参个数少于形参个数,则系统自动使用nil填充,如果实参个数多于形参个数,多出的将被系统自动忽略
可变参函数:在函数定义时不给出具体形参的个数,而是使用三个连续的点号。在函数调用时就可以向该函数传递任意个数的参数,函数可以全部被吸收
匿名函数:function addCallBack(a,b,fun) local c = a+b fun(c)endaddCallBack(1,2,function(cout) print("cout:"..cout)end)
逻辑运算符:逻辑运算符是 and、or 和 not。 与控制结构一样,所有逻辑运算符 将 false 和 nil 视为 false,将其他任何内容视为 true。 运算符,如果它为 false,则返回其第一个参数; 否则,它将返回其第二个参数。 运算符或返回其第一个参数 如果不是假的; 否则,它将返回其第二个参数:both and and or use short-cut evaluation, 也就是说,他们仅在必要时才评估其第二个操作数。 print(4 and 5) --> 5 print(nil and 13) --> nil print(false and 13) --> false print(4 or 5) --> 4 print(false or 5) --> 5一个有用的 Lua 习语是, 这相当于x = x or v if not x then x = v end即,在未设置时设置为默认值 (前提是未设置为 false)。xvxx 另一个有用的成语是(或简称为 因为 and 的优先级高于 or), 等效于 C 表达式(a and b) or ca and b or c Java的三则表达式 a ? b : c
字符串连接:Lua 表示字符串连接运算符 通过“..”(两个点)。 如果它的任何操作数是一个数字, Lua 将该数字转换为字符串。 请记住,Lua 中的字符串是不可变的值。 串联运算符总是创建一个新字符串, 无需对其操作数进行任何修改:.. print("Hello " .. "World") --> Hello World print(0 .. 1) --> 01 a = "Hello" print(a .. " World") --> Hello World print(a) --> Hello
|