zoukankan      html  css  js  c++  java
  • 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

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

     
  • 相关阅读:
    《ASP.ENT Core 与 RESTful API 开发实战》-- (第5章)-- 读书笔记(中)
    《ASP.ENT Core 与 RESTful API 开发实战》-- (第5章)-- 读书笔记(上)
    《ASP.ENT Core 与 RESTful API 开发实战》-- (第4章)-- 读书笔记(下)
    《ASP.ENT Core 与 RESTful API 开发实战》-- (第4章)-- 读书笔记(上)
    《ASP.ENT Core 与 RESTful API 开发实战》(第3章)-- 读书笔记(下)
    《ASP.ENT Core 与 RESTful API 开发实战》(第3章)-- 读书笔记(中)
    《ASP.ENT Core 与 RESTful API 开发实战》(第3章)-- 读书笔记(上)
    《ASP.ENT Core 与 RESTful API 开发实战》-- 读书笔记(第2章)
    《ASP.ENT Core 与 RESTful API 开发实战》-- 读书笔记(第1章)
    ASP.NET Core分布式项目实战(集成ASP.NETCore Identity)--学习笔记
  • 原文地址:https://www.cnblogs.com/haoqirui/p/10507970.html
Copyright © 2011-2022 走看看