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

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.数据类型:
     
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 变量中调用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: