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
--
--[[
内容
]]
---[[ (相当于一个行注释)
内容
--]] (相当于一个行注释)
所以,中间的内容可以显示。
and、break、do、else、elseif、end、false、for、function、if、in、local、nil、not、or、repeat、return、then、true、until、while
io.read()
stdin(标准输入),一般指键盘输入到缓冲区里的东西
io.read("*all") --- 读取整个文件作为一个字符串
io.read("*line") --- 读取下一行
io.read("*number") --- 从字符串中转换出一个数值
io.read(num) --- 读取num个字符串
io.read() --- 默认读取一行
io.write()
stdout(标准输出)
io.write(a,b,c) == io.write(a .. b .. c) ,但是 io.write(a .. b .. c) 消耗更多资源。
二者均是原样输出参数
a,b,c 均不能为nil,io.write({})也会报错,参数应该是string,而不能是table
print()
print(a,b), 输出的a,b 之间会有 \t 制表符
末尾自动换行
自动调用参数的tostring()方法
ioread("xx")
输入为某个xx文件
iowrite("yy")
输出到yy文件
loadfile
编译代码或中间码并且返回编译后的 chunk 作为一个函数,而不运行
loadstring
同loadfile,不过他不是从文件中读,而是从一个串中读
dofile
编译+运行。
每次都要编译
require
只加载一次
与dofile不同的是:
假设 package.path 的值是:
/Users/dengjoe/lua/?.lua;./?.lua;/usr/local/share/lua/5.1/?.lua;/usr/local/share/lua/5.1/?/init.lua;/usr/local/lib/lua/5.1/?.lua;/usr/local/lib/lua/5.1/?/init.lua
那么调用 require("module") 时就会尝试打开以下文件目录去搜索目标:
/Users/dengjoe/lua/module.lua;
./module.lua
/usr/local/share/lua/5.1/module.lua
/usr/local/share/lua/5.1/module/init.lua
/usr/local/lib/lua/5.1/module.lua
/usr/local/lib/lua/5.1/module/init.lua
在lua中需要处理错误,则使用篇call函数封装代码