【Lua基础系列】之类型与值(nil,number,boolean)详细版--Lua类型转换,取整,产生随机数

                        【Lua基础系列】之类型与值详细版

       大家好,我是Lampard~~

       为了方便自己的学习以及分享学到的内容,所以我即将要开设Lua基础系列的博客

       PS:本博客知识参考资料为:《Lua程序设计第四版》,该书由Lua的创始人2018年所编著,所以大家可以放心去吸收知识

 

     话不多说,开始第一讲的内容:Lua的类型与值

       Lua作为在语言中不需要类型定义,而是通过赋值带给变量其自身的类型信息。

       在Lua中有8种基本类型,分别是:nil--空,boolean--布尔,number--数值,string--字符串,userdata--用户数据,function--函数,thread--线程,和table--表。我们可以通过调用print(type(变量))来查看变量的数据类型。

      【Lua基础系列】之类型与值(nil,number,boolean)详细版--Lua类型转换,取整,产生随机数_第1张图片

 

      接下来我们要对nil,Boolean,number进行详细分析。     

    (1) nil

      nil是一种只有一个nil值的类型,它的主要作用是与其他所有值进行区分。Lua语言使用nil值来表示没有有用的值的情况。全局变量第一次被赋值前的默认值就是nil,将nil赋值给全局变量相当于将其删除

   

    (2) Boolean

      Boolean类型具有两个值,truefalse,他们分别代表了传统的布尔值。不过在Lua中,任何值都能表示条件:Lua定义除了falsenil的值为之外,所有的值都为真,包括0和空字符串

     逻辑运算符:and,or,not

     Lua的逻辑运算中,把Boolean类型里面的nil和false当做假,把其他值当做真

     and和or都遵循着短路求值

   

   对于and来说,如果第一个值为假,则返回第一个值,否则返回第二个值

 【Lua基础系列】之类型与值(nil,number,boolean)详细版--Lua类型转换,取整,产生随机数_第2张图片

     对于or来说,如果第一个值为真,则返回第一个值,否则返回第二个值

【Lua基础系列】之类型与值(nil,number,boolean)详细版--Lua类型转换,取整,产生随机数_第3张图片

     对于not来说,返回值永远为Boolean

   【Lua基础系列】之类型与值(nil,number,boolean)详细版--Lua类型转换,取整,产生随机数_第4张图片

 

  (3)number

    在Lua5.2之前所有的数值都是双精度的浮点型,在Lua5.3之后引入了整形integer。整形的引入是Lua5.3的一个重要标志

    整形浮点型的区别:

    整形:类似1,2,3,4,5.....在其身后不带小数和指数

    浮点型:类似1.2,3.5555,4.57e-3......在其身后带小数点以及指数符号(e)的数字

 

  除了加减乘除之外,Lua语言还提供了取整除法(floor除法),取模和指数运算

   对于加+,减-,乘*来说:

   int对int型进行运算,则得到的结果都是int型,但只要两个数字中有一个是float型,则得出来的结果都是float型

【Lua基础系列】之类型与值(nil,number,boolean)详细版--Lua类型转换,取整,产生随机数_第5张图片

  对于除/来说:

无论是什么操作,得到的结果永远都是float

【Lua基础系列】之类型与值(nil,number,boolean)详细版--Lua类型转换,取整,产生随机数_第6张图片

  float除法//:

  得到的是一个整值,若结果存在小数,则向负无穷截断

 【Lua基础系列】之类型与值(nil,number,boolean)详细版--Lua类型转换,取整,产生随机数_第7张图片

   产生随机数(math.random()):

   Lua中产生随机数的三种方式:

  (1)math.random()-- 产生(0~1)的随机值

  (2)math.random(n)-- 产生(1~n)的随机值

  (3)math.random(m,n)-- 产生(m~n)的随机值

 

number类型的取整以及强制转换

   number类型的取整,返回结果为整形值:

  (1)floor()--向负无穷取整

floor(1.5)=1

  (2)ceil() -- 向正无穷取整

ceil(1.5)=2

  (3)modf()--向0取整

modf(1.5)=1
modf(-1.5)=-1

  (4)floor(x+0.5)--四舍五入

  

  number数值类型的强制转换:

  整数类型转化成浮点型:+0.0

  浮点类型转化成整形:math.tointeger()

 

                                                      OK,第一篇Lua基础系列到此为止啦,谢谢大家~~

 

你可能感兴趣的:(lua基础)