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果然牛逼,两个