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