1.4 全局变量
1、不需要声明
2、创建全局变量
创建全局变量,只需将一个值赋予一个全局变量就可以了
a = 8 --全局变量 a 被创建
print(a) --8
3、删除全局变量
删除全局变量,只需将其赋值为 nil
a = 8 --全局变量 a 被创建
print(a) --8
a = nil --全局变量 a 被删除
print(a) --nil
创建全局变量,只需将一个值赋予一个全局变量就可以了
a = 8 --全局变量 a 被创建
print(a) --8
删除全局变量,只需将其赋值为 nil
a = 8 --全局变量 a 被创建
print(a) --8
a = nil --全局变量 a 被删除
print(a) --nil
--
--[[
内容
]]
---[[ (相当于一个行注释)
内容
--]] (相当于一个行注释)
所以,中间的内容可以显示。
a = 'one string'
b = string.gsub(a,'one','another') -- 修改字符串的一部分
print(b) -- another string
\a 响铃、\b 退格、\f提供表格、\n换行、\r回车、\t水平tab、\v垂直tab、\\反斜杠、\"双引号、\'单引号
"alo\n123\" = "\97lo\10\04923"
在 ASCII 中, 'a' 的编码是 97, '\n' 的编码是 10, '1' 的编码是 49
注意:
049 的‘0’不可以省略,否则会认为是492。而 97 后面的是‘l’,所以可以省略前面的‘0’。
总而言之,能不能省略‘0’,要看省略‘0’后会不会引起歧义。
a = [[
...
]]
io.write(a)
[[ ]] 界定字母字符串
lua不会解释其中的转义序列
写含有程序代码的字符串尤为有效
print("10"+1) -- 11
print("10+1") -- 10+1
print("-5.3e-10"*"2") -- -1.06e-09
print("hello"+1) -- 错误
print(10 .. 20) -- 1020
注意:
.. 和数字之间要有空格,否则会被误认为小数点
tonumber()
tostring()
.. (连接符)
a = 'Hello'
print(#a) -- 5
查找字符串 s2 在 s1 中第一次出现的位置
local s = 'shui_a_zai'
local index = string.find(s,'_')
print(index)
结果为 5
string.sub(s,i,j)
返回字符串s从第i个字符到第j个字符的子串,参数i和参数j均可以为负数
b = 'shuiqingyuan_'
ret = string.sub(b,1,-2)
print(ret) -- shuiqingyuan
string.sub(s,i)
如果省略参数j,默认为-1,也就是子串截止到原串的最后
string.sub(s, -i)
返回子串长度为i的原串的后缀。
local a = {}
if next(a) == nil ---> 为空表
and、break、do、else、elseif、end、false、for、function、if、in、local、nil、not、or、repeat、return、then、true、until、while