读一读

page = [[
<html>
    <head><title>啦啦啦</title></head>
</html>
]]

script = [=[
a=b[c[i]] --这里出现了]]所以在起始标志中间加等号,可以加多个,末尾对应上就好了
]=]

function cor(val)
	print(val)
	for i=1,10,1 do
	local c = coroutine.yield(i*10)  --返回i*10给resume()函数
	print(c)
	end
end

co = coroutine.create(cor)

status,re = coroutine.resume(co,100)  --100传给val,输出1 停在c
print(status,re)  --一个是状态,一个是yield返回的值

status,re = coroutine.resume(co,1000) --1000传给c,往下执行,在遇到yield就停下
print(status,re)

function test(a,b)
return a+b,a-b
end

print(test(10,5))

num1,num2 = 2,3

特殊的lua语法,函数可以返回多个值

也可以为多个值赋值


a = {1,5,9}
b = {2,5,8}

local m = {}
setmetatable(a,m)
setmetatable(b,m)

m.__add = function(num1,num2)
    return num1[1] + num2[1]
end

print(a+b)

这里只是演示一下没有实际意义,可以认为表为对象,然后表相加时,认为是对某一个属性的相加



通常,lua中的每个值都有一套预定义的操作集合。加减乘除等。但是对于table和函数是不可以的。所有可以通过元表来提供这一扩展(运算符重载)。元表c负责提供运算符重载方法,只要将元素表a,b的元表设置成c,这样子就可以对a和b进行运算了(调用c的重载方法)。而元表的运算符重载方法就是叫做元方法。


me = {}
me.speed = 999999
local this = me

me.run = function()
	print("于是就像风那样跑了过来")
	print("速度达到"..this.speed)
end

me.seeYou = function()
	print("我看到了你")
	this.run()
end

me.seeYou()

Lua如果要表达面向对象的思想,只能通过Table数据类型来实现了

可以定义方法和属性


myTable = {name="chicai",age=20}
myTable.school = "东莞理工学院"  --点访问添加
myTable['love'] = "you"  --数组形式访问添加

for index,value in pairs(myTable) do
print(index,value)
end  --遍历Table

print(string.upper(str1))
print(math.random())  --随机0-1的值,包前不包后

用到的时候查文档就好了


str1 = "love"
str2 = "you"
print(str1..str2)

很奇葩的,居然是两个.

PHP是一个.,lua果然牛逼,两个