在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
首先说说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 关于运算符的优先级基本上和其他语言大致相同,就不赘述了。 |
请发表评论