Lua学习之Chunks ,全局变量,命令行方式
2015-09-17 10:46
190 查看
坚持 成长 每日一篇
lua执行的每一块语句,比如一个文件,一行代码,一个函数都可以理解为一个chunk。一个chunk可以很大,在lua中几个MByte的chunk也是很常见的(就是一个库)。
在交互模式下,Lua 通常把每一个行当作一个 Chunk,但如果 Lua 一行不是一个完 整的 Chunk 时,他会等待继续输入直到得到一个完整的 Chunk.在 Lua 等待续行时,显示 不同的提示符(一般是>>)
在“终端”输入lua进入交互模式,然后通过dofile()加载lib1.lua文件。然后就可以成功的使用norm方法了。
以下字段为lua保留字不能用来命名变量
-e:直接将命令行传入Lua
-l:加载一个文件
-i:进入交互模式
设置_PROMPT内置变量可以在交互模式前面加一个提示符。
Lua命令在运行参数之前,Lua会查找环境变量LUA_INIT的值。如果变 量存在并且值为@filename,Lua 将加载指定文件。如果变量存在但不是以@开头,Lua 假定 filename 为 Lua 代码文件并且运行他。利用这个特性我们可以加载包,修改提示符和路径,定义自己的函数,修改或者重 命名函数等。
全局变量arg用于保存Lua命令的运行参数
全局变量arg表如下:
注释:单行注释:–
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) --]]
相关文章推荐
- lua中数值for循环的理解
- lua支持中文--改法修正
- luaj/luaoc
- Lua基础
- Lua学习之Mac下搭建lua环境
- 无法加载 DLL“lua52”: 找不到指定的模块
- lua基础(1)
- 我的openwrt学习笔记(三十五):Openwrt 之luci-lua调用uci的测试
- 我的openwrt学习笔记(三十三):Openwrt 之lua 在ubuntu中的测试
- Lua的数组(key为1234的表)
- Lua的表(字典)
- lua mac安装
- 【LeetCode】之Evaluate Reverse Polish Notation
- lua5.2.3源码阅读笔记
- c# lua 简单交互
- 自动绑定lua
- 安装LuaSocket
- Lua动态生成代码
- Lua C PAI中的lua_dump
- leetcode Evaluate Reverse Polish Notation