Lua基础(一)

首先说说Lua的语法规范。

1.下划线+大写字母组合通常被用于特殊用途。

2.Lua对大小写是敏感的,And和AND是不同的标识符。

3.单行注释: -- 注释内容

   多行注释: –[[

                 注释内容

                 --]]

4.各种保留关键字

1.第一个程序

print("hello world!")

2.概括

Lua是一种动态类型的语言,类似python. Lua有8种基本类型。

nil(空),布尔,number(数值),string(字符),userdata(用户数据),function(函数),thread(线程),table(表),用type函数可以获得对应的类型名称。

print(type(nil))
print(type(true))
print(type(10.4*3))
print(type("hello"))
print(type(io.stdin))
print(type(print))
print(type(type))
print(type({}))
print(type(type(X)))

结果:

nil
boolean
number
string
userdata
function
table
table
string

3. 布尔类型

lua语言中,条件语句将除了bool值false和nil外的所有其他值视为真。特别的是。零和空字符串也是真。

lua支持常见的逻辑符and,or,not.对于and逻辑符,如果它的第一个操作数为假,则返回第一个操作数,否则返回第二个。

print(4 and 5)
print(nil and 13)
print(false and 13)
print(13 and false)

结果:

5
nil
false
false

而or逻辑符。如果它的第一个操作数为真,则返回第一个,否则返回第二个。

print(0 or 5)
print(false or "hi")
print(nil or false)

结果:

print(0 or 5)
print(false or "hi")
print(nil or false)

而not永远返回bool类型的值。

4.数值常量

从Lua5.3开始,数值格式有64位整型(int)和双精度浮点类型(float)。出于节省内存,我们也可以编译位精简Lua模式,该模式使用32位整型和单精度浮点类型。

print(type(3))
print(type(3.5))
print(type(0x0.2))

结果:

number
number
number

两种类型之间是可以相互运算的,如果需要严格区分,需要使用math.type()。

常见的算术运算:

print(13+15)
print(13.0+15)
print(3.0/2)
print(-(3*6.0))

结果:

28
28.0
1.5
-18.0

lua5.3之后,还有整除法,取模和指数运算:

print(3//2)
print(3.0//2)
print(17%3)
print(19%3.0)
--特殊地 x-x%0.001是x保留三位小数的结果
x = math.pi
print(x-x%0.001)
print(x^3)

结果:

1
1.0
2
1.0
3.141
31.0062766803

关系运算(< > <= >= == ~=(不等于)),特别地==和~=可以应用于任意两个值,当这个两个值的类型不用时,Lua语言认为它们是不相等的。注意应该忽略子类型

print(3~=3.0)            
print(3=="hello")

结果:

false
false

标准数学库math,由三角函数指数函数取整函数最大最小函数,伪随机数以及常量pi和hugh(最大可表示数值)组成。所有三角函数都以弧度为单位。通过deg和rad函数进行角度弧度转换。

随机数math.random。当不带参数时,返回一个[1, n]范围内的伪随机整数。1和n可以分别用两个整型参数替代。

math.random(l, n)

函数randomseed用于设置伪随机发生器的种子,通常使用math.randomseed(os.time())当前系统时间作为种子初始化随机数发生器。

取整函数floor,ceil和modf。

print(math.floor(3.3))
print(math.floor(-3.3))
print(math.ceil(3.3))
print(math.ceil(-3.3))
print(math.modf(3.3))
print(math.modf(-3.3))

结果:

3
-4
4
-3
3	0.3
-3	-0.3

关于运算符的优先级基本上和其他语言大致相同,就不赘述了。

 

猜你喜欢

转载自www.cnblogs.com/haoqirui/p/10507970.html