lua tutorial 01

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 变量中调用。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值