-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstart.lua
More file actions
executable file
·64 lines (51 loc) · 2.86 KB
/
start.lua
File metadata and controls
executable file
·64 lines (51 loc) · 2.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/usr/bin/lua
print("hello world!")
-- 单行注释
--[=[
多行注释
--]=]
--[=[
注意:
1.lua中0为true。除了nil和false,其它都为true.
2.一般约定,以下划线开头连接一串大写字母的名字(比如 _VERSION)被保留用于 Lua 内部全局变量。
3.默认变量和函数都是全局的,如果要声明局部的,则加local.
4.其它运算符:..(字符串连接符);#(返回字符串或表的长度)。
一、语法
1.标示符最好不要使用下划线加大写字母的标示符,因为Lua的保留字也是这样的。
一般约定,以下划线开头连接一串大写字母的名字(比如 _VERSION)被保留用于 Lua 内部全局变量。
2.区分大小写。
3.脚本语言。
4.默认情况下,变量总是认为是全局的。访问一个没有初始化的全局变量也不会出错,只不过得到的结果是:nil。
如果你想删除一个全局变量,只需要将变量赋值为nil
二、数据类型:(和php一样,直接给变量赋值即可)
8中基本类型:nil、boolean、number(双精度浮点数)、string、userdata(c数据结构)、function、thread和table(其实就是关联数组,用{}创建)
note:可用[[]]来表示一块字符串,类似php的hedoc.
字符串连接使用两个点..
使用#计算字符串长度,如:#str.
local tbl = {"apple"}
print(tbl[0]) #lua很特别,索引从1开始#
线程跟协程的区别:线程可以同时多个运行,而协程任意时刻只能运行一个,并且处于运行状态的协程只有被挂起(suspend)时才会暂停。
三、变量
变量在使用前,必须在代码中进行声明,即创建该变量。
编译程序执行代码之前编译器需要知道如何给语句变量开辟存储区,用于存储变量的值。
Lua 变量有三种类型:全局变量、局部变量、表中的域。
Lua 中的变量全是全局变量,那怕是语句块或是函数里,除非用 local 显式声明为局部变量。
局部变量的作用域为从声明位置开始到所在语句块结束。
四、函数
1.可以返回多个值。
2.可变参数.和C语言类似在函数参数列表中使用三点(...) 表示函数有可变的参数.Lua将函数的参数放在一个叫arg的表中,#arg 表示传入参数的个数。
五、迭代器
六、模块与包
1.定义一个模块: tbl = {} return tbl
2.使用一个模块:local m = require("tbl路径") m.func()
3.模块加载机制:
require会在lua的全局变量package.path中搜索,而LUA_PATH的值会赋给全局变量package.path.
LUA_PATH设置方法:打开.bashrc,加上
export LUA_PATH="~/lua/?.lua;;" #文件路径以 ";" 号分隔,最后的 2 个 ";;" 表示新加的路径后面加上原来的默认路径。
然后执行source ~/.bashrc
--]=]
print(b) --nil
local tbl = {"apple","orange",'water'}
print(tbl[0]) --nil
print(tbl[1]) --apple
print(#tbl) --3