lua base01(个人笔记)

-- 单行注释
[[
 这个是
多行字符串
]]

--[[ 
	多行注释
]]

-- 函数
function fact(n)
	if n == 0 then
		return 1
	else
		return n * fact(n - 1)
	end
end

-- 在空中面板输入一个数
a = io.read("*n")
fact(a)


print(2^) 		-- 平方
b = 55    		-- 全局变量
local bb = b 	-- 局部变量
print(type(bb)) -- 获取数值类型 为空 nil
print(3 / 2)	-- 1.5
print(123 / 10) -- 12
print(123 % 10) -- 23
print(123 ~= 10) -- ~= 不等于

-- x为空选择后面一个赋值
x = x or 8		
if not x then x = 9 end

-- 判断不分浮点数和整数
pring(1 == 1.0)		-- true
pring(-3 == -3.0)	-- true

-- 十六进制 0x
print(0x1A3) -- 十六进制 显示成10进制419  
String.format("%a",419)  -- 419转换成16进制然后格式化输出

-- math 函数
print(math.pi) 			-- 圆周率
print(math.sqrt(9)) 	-- 开方
-- 类型转换
print(math.tointeger(9.0))
print(tonumber("  6 ")) 			-- 10进制转换(输出,填入都是10进制)
print(tonumber("100101",2)) 		-- 2进制转10进制
print(tonumber("fff",16)) 			-- 16进制转10进制
print(tostring(16)) 				-- 转字符串	

-- [[
math.abs(-15)			-- 取绝对值
math.ceil(5.8)			-- 向上取整
math.floor(5.6)			-- 向下取整
math.modf(15.98)		-- 取整 舍弃
math.mod(14, 5)			-- 取模运算
math.max(2.71, 100, -98, 23)			-- 最大值
math.min(2.71, 100, -98, 23)			-- 最小值
math.pow(2, 5)			-- 2的5次方
math.rad(180)			-- 角度转弧度
math.random(1, 100)		-- 获取1-100的随机数
math.randomseed(os.time())				-- 在使用math.random函数之前必须使用此函数设置随机数种子
]]

-- 字符串
b = String.gsub(a,"one","other")  	-- a字符串中的one替换成other
print(#b)							-- 获取字符串b的长度
print("hello" .. 9)				-- 连接字符串	
print(66 .. 99)					-- 6699

-- [[
string.len(s)			-- 获取字符长度
string.rep(s,n)			-- s重复n次的字符串
string.revers(s)		-- 反转字符串
string.lower(s)			-- 转小写
string.upper(s)			-- 转大写(简写:s:upper())
string.sub(s,2,8)		-- 截取指定范围内的字符串(简写:s:sub(2,8))
string.char(97)			-- ascii码转字符  a
string.byte("abc")		-- 字符转ascii码  97
string.byte("abc",1)	-- 字符转ascii码  97
string.byte("abc",2)	-- 字符转ascii码  98
string.byte("abc",1,2)	-- 字符转ascii码(获取多个返回)  97 98

格式化字符
string.format("x = %d ,y = %d",10,20) 	-- %d数字占位
string.format("x = %02d ,y = %04d",1,1234) 	-- %d数字占位 控制每个位置数字数量 x = 01 ,y = 1234
string.format("x = %x",200) 			-- %x十六进制占位 c8
string.format("x = %f",200) 			-- %f浮点数占位 200.0
string.format("x = %.4f",math.pi) 		-- %f浮点数占位,保留4位小数 3.1416

string.find("hello world","wor")		-- 查询wor在字符的位置 7  9
string.gsub("hello world","ll","...")	-- 替换字符串
string.gsub("hello world ll ll","ll","...",2)	-- 替换字符串 最后一个参数是限制替换次数
]]

-- 模式匹配 . 任意字符 %a字母 %c控制符 %d数字 %g空格除外可打印字符
-- 			%l小写字母 %p标点符号 %s空白符号 %u大写字母 %w字母和数字 %x十六进制数字
--			+(重复一次或多次) *(重复零次或多次) -(重复零次或多次(最小匹配)) ?(出现零次或一次)
-- 			. % + - & ? [] ^ $ 转义字符 %%=%,%.=.
-- match 返回查找到的字符串
data = "Today is 2020/08/30"
d = string.match(data,"%d+/%d+/%d+")
print(d) -- 2020/08/30

-- gmatch 返回一个函数,可以遍历返回的结果
words = {}
for w in string.gmatch(s, "%a+") do
	words[#words + 1] = w
end

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值