3

前情提要:

Lua基础

Lua数据结构与标准库简介

Lua的函数和作用域

命令行参数

命令行参数存储在arg表中,假定你有一个foo.lua脚本:

print(arg[-1], arg[0])
for i, v in ipairs(arg) do print(v) end

假设我们运行lua foo.lua arg1 arg2 arg3,输出为:

lua foo.lua
arg1
arg2
arg3

文件中的...

由于文件以函数的方式加载,所以我们可以用上...。假定bar.lua内容如下:

print(...) -- 输出所有传递给该文件函数的参数

以如下语句加载:

loadfile("bar.lua")(1, 2, 3, 4)

输出为1 2 3 4.

dofile不发送参数,require发送给定的路径:

require("bar") -- "bar"
require("folder.subfolder.bar") -- "folder.subfolder.bar"

如果你运行lua bar.lua arg1 arg2 arg3,会输出arg1 arg2 arg3

_G

里面存了所有的全局变量:

a = 3
print(_G.a) -- 3
_G.b = 4
print(b) -- 4
print(_G._G == _G) -- true

原文 Lua for Programmers Part 4: Tips and Tricks
翻译 SegmentFault


weakish
24.6k 声望844 粉丝

a vigorously lazy deadbeat with matured immaturity