lua tutorial 01
2016-01-04 11:14
288 查看
1.第一个程序“HelloWorld”
--输出"HelloWorld"
print("HelloWorld")
2.关于注释
跟其他的语言一样,lua中的注释有单行注释和多行注释
3.变量:默认情况下的变量总是全局变量,变量的默认值为nil
print(variable)
variable = "Hello Lua"
print(variable)
4.数据类型:
4.1 nil
a.变量的默认值是nil
b.相对于全局变量和table,nil还有一个作用就是删除,给全局变量或table赋值nil,等同于把他们删掉
4.2 boolean
需要注意的是:只有false和nil表示false,其他的都表示true,所有的数字也都表示true.
4.3number
所有的数字都是Number类型
4.4 string
单行的string可以用""或''包围
多行的string可以用[[]]包围
4.5table
--table
local tab1 = {}--定义一个空表
local tab2 = {"aa","bb","cc","dd"}--定义并初始化
a = {}
a["key"] = "value"
key = 10
a[key] = 22
a[key] = a[key] + 11
for k,v in pairs(a) do
print(k..";"..v)
end
4.6 function
--function
function fact(n)
if n == 0 then
return 1
else
return n * fact(n - 1)
end
end
print(fact(10))
fac = fact
print(fac(10))
4.7 thread 线程
在 Lua 里,最主要的线程是协同程序(coroutine)。它跟线程(thread)差不多,拥有自己独立的栈、局部变量和指令指针,可以跟其他协同程序共享全局变量和其他大部分东西。
线程跟协程的区别:线程可以同时多个运行,而协程任意时刻只能运行一个,并且处于运行状态的协程只有被挂起(suspend)时才会暂停。
4.8 userdata 自定义类型
userdata 是一种用户自定义数据,用于表示一种由应用程序或 C/C++ 语言库所创建的类型,可以将任意 C/C++ 的任意数据类型的数据(通常是 struct 和 指针)存储到 Lua 变量中调用。
--输出"HelloWorld"
print("HelloWorld")
2.关于注释
跟其他的语言一样,lua中的注释有单行注释和多行注释
--这是单行注释 --[[ 这是多行注释 这是多行注释 --]]
3.变量:默认情况下的变量总是全局变量,变量的默认值为nil
print(variable)
variable = "Hello Lua"
print(variable)
4.数据类型:
nil | 只有nil属于这个类,表示一个无效值,在条件表达式中相当于false |
boolean | 包含两个值:false,true |
number | 双精度类型的实数和浮点数 |
string | 字符串,有一对单引号或双引号 |
function | 由C或lua编写的函数 |
userdata | 任意存储在变量中的C数据结构 |
thread | 线程 |
table | 类似Map和数组,索引可以是数字或字符串,数组的话索引从1 开始 |
print(type("Hello Lua")) print(type(10.4)) print(type(print)) print(type(type)) print(type(true)) print(type(nil)) print(type(type(x)))
4.1 nil
a.变量的默认值是nil
b.相对于全局变量和table,nil还有一个作用就是删除,给全局变量或table赋值nil,等同于把他们删掉
print(type(a))--变量的默认值是nil tab1 = {key1 = "val1",key2 = "val2","val3"} for k,v in pairs(tab1) do print(k.."-"..v) end tab1.key1 = nil--删除key1 for k,v in pairs(tab1) do print(k.."-"..v) end
4.2 boolean
需要注意的是:只有false和nil表示false,其他的都表示true,所有的数字也都表示true.
--boolean print(type(true)) print(type(false)) print(type(nil)) if 0 then print("0 means true") else print("0 means false") end if 1 then print("1 means true") else print("1 means false") end if nil then print("nil means true") else print("nil means false") end
4.3number
所有的数字都是Number类型
print(type(2)) print(type(2.256)) print(type(0.015)) print(type(2e+1)) print(type(0.2e-10)) print(type(0.1234567898765432101))
4.4 string
单行的string可以用""或''包围
多行的string可以用[[]]包围
--string str1 = "this is a string" str2 = 'this is a string' str3 = [[ 这是一个多行的string 这是一个多行的string 这是一个多行的string ]] print(str1) print(str2) print(str3) print("2" + 6)--程序会计算2+6的值 print("2 + 6")--输出"2 + 6" print("-2e2"*"6")--输出计算结果 --连接字符串使用.. print("a".."b") --获取字符串的长度# str4 = "www.baidu.com" print(#str4) print(#"www.sina.com")
4.5table
--table
local tab1 = {}--定义一个空表
local tab2 = {"aa","bb","cc","dd"}--定义并初始化
a = {}
a["key"] = "value"
key = 10
a[key] = 22
a[key] = a[key] + 11
for k,v in pairs(a) do
print(k..";"..v)
end
4.6 function
--function
function fact(n)
if n == 0 then
return 1
else
return n * fact(n - 1)
end
end
print(fact(10))
fac = fact
print(fac(10))
4.7 thread 线程
在 Lua 里,最主要的线程是协同程序(coroutine)。它跟线程(thread)差不多,拥有自己独立的栈、局部变量和指令指针,可以跟其他协同程序共享全局变量和其他大部分东西。
线程跟协程的区别:线程可以同时多个运行,而协程任意时刻只能运行一个,并且处于运行状态的协程只有被挂起(suspend)时才会暂停。
4.8 userdata 自定义类型
userdata 是一种用户自定义数据,用于表示一种由应用程序或 C/C++ 语言库所创建的类型,可以将任意 C/C++ 的任意数据类型的数据(通常是 struct 和 指针)存储到 Lua 变量中调用。
相关文章推荐
- Lua脚本语言入门
- Lua使用笔记
- lua脚本语言的学习-----------------lua栈操作
- Lua语法学习笔记
- lua模块的几种实现方式
- lua脚本语言的学习-----------------带参数的lua函数的传递
- lua脚本语言的学习-----------------如何实现c++无参数的函数在lua中调用
- lua脚本语言的学习-----------------VS2013如何编译lua脚本的三方库
- ngx_lua配置及应用
- 【转】说下lua使用场景
- ngx_lua应用最佳实践
- Lua脚本
- Lua基础之字符串(string)
- Lua基础之字符串(string)
- evaluatedOK == JS_FALSE 的问题
- OpenResty如何在一个lua文件调用另一个lua文件的函数
- angluar js学习网站
- Lua 中改变console的输出字体颜色
- 在Windows visual studio环境下编译Lua
- another lua vm