美文网首页
lua数据类型

lua数据类型

作者: 亮亮同学 | 来源:发表于2019-11-08 15:27 被阅读0次

    有挫败才有成长。


    Lua脚本语言,动态类型的语言,运用灵活,变量不需要类型定义,只需要赋值即可,值可以存储在变量中,作为参数传递或作为结果返回
    Lua 中有8个基本类型分别为:

    number,  string, nil, boolean, function, table, userdata, trhread
    

    number:实数 ,可以是整数,浮点数

    例如:1,1.0, 0.5

    local testNum  = 1
    print(testNum)
    local testNum  = 1.0
    print(testNum)
    local testNum  = 0.5
    print(testNum)
    

    运行结果是:
    1 1.0 0.5


    string:字符串 用""或者''包起来的内容

    local text  = "lua你好"
          text  = 'lua我好'
    print(text)
    

    运行结果是:
    lua 我好


    nil:表示一个无效值空值 注意:nil ~= false

    local testLua = 1
    
    testLua = nil
    print(testLua)
    

    运行结果是:nil

    local testLua = false
    
    testLua1 = nil
    print(testLua == testLua1)
    print(not testLua1)
    

    运行结果是:false
    ture


    boolean:相当于布尔类型 ,有两个值 false ,true 对与错。 黑白两道 看你走哪条,一般用于 判断条件和返回值

    local isMe = false 
    print(isMe)
    local isMe = true 
    print(isMe)
    

    运行结果是:false
    ture


    function:函数也可以说是方法,用于处理数据,逻辑的一个代码块。 lua中函数可以作为变量进行传递 具有变量的属性

    函数:
    

    function 用于定义函数类型 + 函数名字+()里面方参数也可以不加参数 以end 为结尾
    例如下面的:
    无参函数

    local function testFun()
      print("函数")
    end
    --运行函数
    testFun()
    --把函数赋值给变量funVar  注意 函数赋值 只需要 写函数名不需要写()
    local funVar = testFun
    --打印出来的是函数的内存地址
    print(funVar)
    

    有参函数

    --括号里是参数
    local function testFun(var)
      print(var)
    end
    --运行函数
    local num = 10
    testFun(num)
    

    运行结果是: 10

    table:lua中的表(table),lua中最核心的 数据类型,可以用做数组,可以用作 字典,table的创建是通过“构造表达式”来完成的 ,最简单构造表达式是{},用来创建一个空表

    --创建空表
    local myTable1 = {}
    --初始化一个表
    local myTable2 = {1,2,3}
    --打印空表
    
    --表赋值 也可以用myTable2
    local myTable = myTable1
    -- 用 #获取表的长度
    local dataNum = #myTable
    
    --通过for循环将表里的元素遍历并打印出来
    
    --如果表是空的 直接返回 结束程序
    if dataNum == 0 then
        print("表是空的")
        return
    else
        --要么就打印出标的元素
        for i =1 ,dataNum do 
            print(myTable[i])
        end
    end
    

    myTable1的打印结果是:表是空的
    myTable2的打印结果是:1 2 3


    userdata:表示任意存储在变量中的C数据结构

    userdata 是一种用户自定义数据,用于表示一种由应用程序或 C/C++言

    库所创建的类型,可以将任意 C/C++ 的任意数据类型的数据(通常是
    struct 和 指针)存储到 Lua 变量中调用。


    trhread:协程,表示执行的独立线路,用于执行协同程序

    在 Lua 里,最主要的线程是协同程序(coroutine)。它跟线程(thread)差不多,拥有自己独立的栈、局部变量和指令指针,可以跟其他协同程序共享全局变量和其他大部分东西。
    线程跟协程的区别:线程可以同时多个运行,而协程任意时刻只能运行一个,并且处于运行状态的协程只有被挂起(suspend)时才会暂停。


    我们可以使用 type 函数测试给定变量或者值的类型:

    print(type("Hello world"))      --> string
    print(type(10.4*3))             --> number
    print(type(print))              --> function
    print(type(type))               --> function
    print(type(true))               --> boolean
    print(type(nil))                --> nil
    print(type(type(X)))            --> string
    print(type({}))            --> table
    print(type(io.stdin))            --> userdata
    

    复习题:
    1,lua是什么?
    2,lua可以做什么?
    3,注释第2,3,4行代码,并确保 程序仍然可以运行

    local function  test()
      print("1")
      print("2")
      print("3")
      print("4")
    end
    

    4,修改程序中 错误的(标识符)变量名,并成功运行程序

    local _test = 2
    print(_test)
    
    local 0test = 3 
    print(0test)
    local &test = 4
    print(&test)
    local test* = 5
    print(test*)
    

    5,什么是全局变量 ,什么是局部变量 ,并用程序说明

    6,列出 lua脚本语言中 所有的数据类型,并编程输出类型

    7,打印一串字符

    cocos2d-x技术群:117871561

    相关文章

      网友评论

          本文标题:lua数据类型

          本文链接:https://www.haomeiwen.com/subject/qngibctx.html