lua数据类型

2019-11-08  本文已影响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

上一篇下一篇

猜你喜欢

热点阅读