Lua学习-Chunks学习

Chunks是一系列语句,Lua执行的每一块语句,比如一个文件或者交互模式下的每一行都是一个Chunks
 
每个语句结尾的分号(;)是可选的,但如果同一行有多个语句最好用;
 
 
 
假定一个文件 a 内有单个语句 x=1;另一个文件 b 有语句 print(x)
 
prompt> lua -la -lb

将在一个 Chunk 内先运行 a 然后运行 b,最后直接进入交互模式。

-- file 'lib1.lua'
function norm (x, y)
   local n2 = x^2 + y^2
   return math.sqrt(n2)

end

function twice (x)
   return 2*x

end

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

 

Lua 是大小写敏感的.

注释:单行注释:-- 多行注释:--[[ --]]

1.4 命令行方式

-e:直接将命令传入 Lua
prompt>lua-e"print(math.sin(12))" -->-0.53657291800043 -l:加载一个文件.
-i:进入交互模式.

_PROMPT 内置变量作为交互模式的提示符

prompt> lua -i -e "_PROMPT=' lua> '"
lua>

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

在运行以前,Lua 使用所有参数构造 arg 表。脚本名索引为 0,脚本的参数从 1 开始 增加。脚本前面的参数从-1 开始减少。

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

arg 表如下:

page18image8792
 
page18image8952
 
page18image9112
 
page18image9272
 
page18image9432
 
page18image9592
prompt> lua -i -e "_PROMPT=' lua> '"
lua>
page18image10584
 
page18image10744
 
page18image10904
 
page18image11328
 
page18image11488
 
page18image12568
 
page18image13368
 
page18image14872
arg[-3] = "lua"
arg[-2] = "-e"
arg[-1] = "sin=math.sin"
arg[0] = "script"
arg[1] = "a"
arg[2] = "b"
 
原文地址:https://www.cnblogs.com/AbelChen1991/p/3831174.html