数据类型:
lua变量类型(数据类型)
nil表示空数据,等同C#的null
boolean 布尔类型
string 字符串类型。可以使用双引号也可以使用单引号
number 小数类型。注意:lua中没有整数类型。
table 类型。表示一个集合,下表序号是从1开始的(lua没有class的概念,lua的面向对象就是用‘表实现’)
function 表示有lua(或者C)编写的函数。(类似C#的方法)
userdata 表示任意存储在变量中的C数据类型。
thread 表示执行的独立线程(本质是“伪多线程”,是协程的概念),用于执行协同程序。
- -- 数据类型与三大运算符
- --[[1:lua 的六种数据类型
- 2:三大运算符
- A、算术运算符
- B、关系运算符
- C、逻辑运算符--]]
- --[[-- 数据类型
- print('字符串 数据类型:'..type('你好'))
- print('number 数据类型:'..type('886'))
- print('boolean 数据类型:'..type(true))
- print('nil 数据类型:'..type(nil))
- print('table 数据类型:'..type({10,20,30}))
- function func()
-
- end
- print('函数 数据类型:'..type(func))
- --]]
- -- 三大运算符
- --[[算数运算符:+ - * / %
- 注意 :lua 中没有自增与自减运算符
-
- 关系运算符: < <= > >= == ~=
- 注意:1:nil 只与其自身相等。
- 2:对于table、函数、userdata,lua 是作引用比较的,即:只有当他们引用同一个对象是,才认为他们相等。--]]
-
- print('学习三大运算符---算数运算符')
- num1 = 10
- num2 = 3
- res1 = num1+num2 -- output:13
- res2 = num1-num2 -- output:7
- res3 = num1*num2 -- output:30
- res4 = num1/num2 -- output:3.3333333...
- res5 = num1%num2 -- output:1
- res6 = num1^num2 -- output:1000
- print("‘加法’、‘减法’、‘乘法’、‘除法’、‘取余’、‘次幂’分别输出的结果:"..res1,' ',res2,' ',res3,' ',res4,' ',res5,' ',res6)
- print('学习三大运算符---关系运算符')
- print('num1>num2:'..tostring(num1>num2)) -- true
- print('num1>num2:'..tostring(num1>=num2)) -- true
- print('num1>num2:'..tostring(num1<num2)) -- false
- print('num1>num2:'..tostring(num1<=num2)) -- false
- print('num1>num2:'..tostring(num1==num2)) -- false
- print('num1>num2:'..tostring(num1~=num2)) -- true
- --[[-- 逻辑运算符 and or not
- 1.所有的逻辑操作符将false 、nil 视为假、其他都为真
- 2.对于操作符and 来说,如果它第一个操作数为假,就返回第一个操作数,不然返回第二个操作数。即:有假为假,全真为真
- 3:对于操作符or 来说,如果它第一个操作数为真,就返回第一个操作数,不然返回第二个操作数。即:有真为真,全假为假。--]]
-
- print("学习三大运算符---逻辑运算符")
- num3 = 100
- num4 = 200
- num5 = 300
-
- -- 运算规则:"与"规则:有一个假的,则结果就是假的。全真,结果是真
- -- "或"规则:有个真的,则结果就是真的。全假,结果是假
- print(num3 > num4 and num4 < num5) -- output:false
- print(num3 > num4 or num4 < num5) -- output:false or true
- print(not(num3 > num4)) -- output:true
- -- 针对与带有“数字”与“字符串”的逻辑判断。(使用:短路规则:and 逻辑假短路规则,对于 or 逻辑真短路规则)
- print(not(nil)) -- output:true
- print(not(false)) -- output:true
- print(not('你好')) -- output:false
- print(not(123)) -- output:false
- print(not(true)) -- output:false
- -- 需要进行“短路规则”判断的例子
- print(10 and 20) -- output:20
- print(nil and 80) -- output:nil
- print(false and 66) -- output:false
- print(2 or 5) -- output:2
- print(false or 10) -- output:10
- print('你好' and 10) -- output:10
- print(20 or 'hello') -- output:20
- --[[-- 多重赋值
- lua中可以给多个变量同时赋值。
- eg:num1,num2,num3=1,2,3
- lua可以进行多重赋值
- lua 总是将等号右边值的个数调整到与左边变量个数相一致的情况
- 规则:如果值的个数少于变量的个数,那么多余的变量会被赋值为nil
- 如果值的个数更多的话,多余的值会被忽略掉。--]]
-
- print('lua 的多重赋值')
- num1,num2,num3 = 10,20
- print(num1,num2,num3)
复制代码
|