您的位置:首页 > 编程语言 > Lua

Lua学习之Chunks ,全局变量,命令行方式

2015-09-17 10:46 190 查看
坚持 成长 每日一篇

Chunks

Chunk是一系列的语句,你可以理解为Lua可以成功执行不出错的一系列语句。

lua执行的每一块语句,比如一个文件,一行代码,一个函数都可以理解为一个chunk。一个chunk可以很大,在lua中几个MByte的chunk也是很常见的(就是一个库)。

在交互模式下,Lua 通常把每一个行当作一个 Chunk,但如果 Lua 一行不是一个完 整的 Chunk 时,他会等待继续输入直到得到一个完整的 Chunk.在 Lua 等待续行时,显示 不同的提示符(一般是>>)

dofile加载一个文件

例如有一个lib1.lua文件,内容如下

function norm (x, y)
local n2 = x^2 + y^2
return math.sqrt(n2)
end
function twice (x)
return 2*x
end


在“终端”输入lua进入交互模式,然后通过dofile()加载lib1.lua文件。然后就可以成功的使用norm方法了。

> dofile("lib1.lua") -- load your library
> n = norm(3.4, 1.0)
> print(twice(n)) --> 7.0880180586677


全局变量

在lua中全局变量不需要声明就可以直接使用,未声明的变量初始值为nil,反之如果你想删除一个全局变量只需将该全局变量置nil即可。

print(b)      --> nil
b = 10
print(b)      --> 10
b = nil
print(b)      --> nil


以下字段为lua保留字不能用来命名变量

and break do end false for if  function else in local nil not or repeat return then true until while


Lua命令的格式

lua命令的使用格式如下:

lua [options] [script [args]]


-e:直接将命令行传入Lua

prompt>lua-e"print(math.sin(12))" -->-0.53657291800043


-l:加载一个文件

-i:进入交互模式

设置_PROMPT内置变量可以在交互模式前面加一个提示符。

bogon:~ chris$ lua -i -e "_PROMPT='My lua>'"
Lua 5.3.1  Copyright (C) 1994-2015 Lua.org, PUC-Rio
My lua>


Lua命令在运行参数之前,Lua会查找环境变量LUA_INIT的值。如果变 量存在并且值为@filename,Lua 将加载指定文件。如果变量存在但不是以@开头,Lua 假定 filename 为 Lua 代码文件并且运行他。利用这个特性我们可以加载包,修改提示符和路径,定义自己的函数,修改或者重 命名函数等。

全局变量arg用于保存Lua命令的运行参数

prompt> lua -e "sin=math.sin" script a b


全局变量arg表如下:

arg[-3] = "lua"
arg[-2] = "-e"
arg[-1] = "sin=math.sin"
arg[0] = "script"
arg[1] = "a"
arg[2] = "b"


Lua的注释

注意:Lua 是大小写敏感的.

注释:单行注释:–

--[[
print(10) -- no action (comment)
--]]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: