Lua 实验,数据类型相关

对相关数据类型的整理
--单行注释
--[[
	这里是多行注释
	随意写
]]

print(">>>>>>>>>数据类型<<<<<<<<<<<")
--[[
	Lua中共有8种数据类型
	nil
	boolean 
	number
	string
	userdata
	function
	thread
	table
]]
-- type
-- 定义变量, 不需要指定变量的类型
-- 语句后面的;可有可无
print(type(a)) --> 如果变量没有被定义过, 类型为nil

a = 10 --> a的类型由=后面自动推断
print(type(a))

a = "张三"
print(type(a))

a = print
print(type(a))
a(type(a))

print(">>>>>>>>>boolean<<<<<<<<<<<")
--[[
	1.bool类型取值范围: true false
	2.在Lua中, bool类型可以与任意类型进行比较
	3.在Lua中, 只有nil 和 false 表示假, 其他均为真
	4.在if语句判断中, 除了false和nil, 其他均为真
]]
a = false
if (a)
then
	print("真")
else
	print("假")
end

print(">>>>>>>>>number<<<<<<<<<<<")
--[[
	1.Lua中不分 float,int,double,decimal, 所有数值都叫number
	2.Lua中数值的小数部分和整数部分的位数可以自己定义.
	Lua格式化输入/输出
]]
a = 4
a = 0.4
a = 2.5e+3
a = 2.5e15 * 2e5
print(a)

print(">>>>>>>>>string<<<<<<<<<<<")
--[[
	1.Lua中每个字符最多占位8个字节,常见的UTF8字符集占1-4字节
	2.Lua中的字符串不可变, 内存自动管理
]]
--1.定义
a = "Lua"
print(a)
--2.替换
a = "one string"
b = string.gsub(a, "one", "two")
print(a)
print(b)
--3.字符串长度
print(string.len(a))
--4.Lua字符串的转义
-- \a \b \n \t \\ \" \' \[ \]
print("\a")
print("abc\b")
--5.使用[[]]可以拼接任意长度的字符串
a = [[ select * from table where a = b
insertinto ..... ]] 
print(a)
--6.有关字符和整形的运算
print("10 " + 1) --> 11.0,
-- 如果字符串遇到+-*/等运算符, 会试图将字符串转换成number
-- 如果转换不成功, 则报错
-- print("a10" + 1) --> 是自动转换的
print("20" * "40")
--7.字符串的拼接,使用..拼接, 一个好的习惯实在..前后加空格
print("abc" .. "def")
-- print("a" + "b")
print(10 .. 20) --> 数值的.., 将数值转为字符串
--8.比较, 字符串和number比较, 报错
-- 字符串和number判等, 永远为假
print("10" == 10)
-- 由数值转为字符串
print(tostring(10) == "10")
-- 由字符串转为数值
a = tonumber("10")
if (a == nil)
then
	print("转换失败")
else
	print(a)
end
print(10 .. "" == "10")

print("10", "20", "30", 40, type(print))

print(">>>>>>>>>function<<<<<<<<<<<")
--[[
	1.lua中, function作为一个值类型, 可以当做普通的变量来使用
]]
-- 定义 ... 表示可变参数
function function1( ... )
	print("HelloWorld")
end

function1()
function1(a, b, c)

function function2( x )
	print(type(x))
end

function2("abc")
function2(10)
function2(function2)

print(">>>>>>>>>Table<<<<<<<<<<<")
--[[
	1.Lua中的Table相当于C#中的List,数组容器, 字典,哈希表等等
]]
-- table的定义
a = {}

print(">>>>>>>>>Table数组<<<<<<<<<<<")
a = {1,2,3,4,5}
a = {"张三", "李四", "王五"}
a = {"张三", 18, "未婚", true}

print(">>>>>>>>>Table字典<<<<<<<<<<<")
a = { 
		["姓名"] = "张三",
	  	["年龄"] = 18,
	  	["政治面貌"] = true
	}

print(">>>>>>>>>Table混合使用<<<<<<<<<<<")
a = { 	1,
		2,
		3,
		true,
		["姓名"] = "张三",
		18,
	  	["年龄"] = 18,
	  	"志玲",
	  	["政治面貌"] = true
	}

print(">>>>>>>>>table的操作<<<<<<<<<<<")
a = {["x"] = 10, 15, ["y"] = 20, ["z"] = 30}
print(a["x"])
print(a[x])
print(a[1])
print(a.x)
print(a.z)

print(">>>>>>>>><<<<<<<<<<<")
a.m = 88
a.m = 99 --> 无则创建, 有则修改
for k,v in pairs(a) do
	print(k,v)
end

print(">>>>>>>>><<<<<<<<<<<")
a = {}
for i=-5,5 do
	a[i] = i
end

for i=-5,5 do
	print(a[i])
end

for k,v in pairs(a) do
	print(k,v)
end



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值