在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1.C# 与 LUA
2.LUA变量
3.字符串表示 string1 = "this is string1" string2 = 'this is string2' 或者用‘[[]]’来表示字符串块,可换行 string3 = [[ Line1 Line2 ]]
4.字符串操作
5.使用 # 来计算字符串或表的长度 > len = "www.w3cschool.cc" > print(#len) 16
6.LUA中的table eg. t = {} t["key1"] = "value1" key2 = 10 t[key2] = 20 for k, v in pairs(t) do print(k..":"..v) end 输出: key1:value1 10:20 对 table 的索引使用方括号 []。Lua 也提供了 . 操作。
7.不同于其他语言的数组把 0 作为数组的初始索引,在 Lua 里表的默认初始索引一般以 1 开始。 array = {} for i= -2, 2 do array[i] = i * 2 end for i = -2,2 do print(array[i]) end
8.Lua可以对多个变量同时赋值,变量列表和值列表的各个元素用逗号分开,赋值语句右边的值会依次赋给左边的变量。 a, b = 10, 2*x <--> a=10; b=2*x x, y = y, x -- swap 'x' for 'y' 当变量个数和值的个数不一致时,Lua会一直以变量个数为基础采取以下策略:
9.循环 for var=exp1,exp2,exp3 do <执行体> end var从exp1变化到exp2,每次变化以exp3为步长递增var,并执行一次"执行体"。exp3是可选的,如果不指定,默认为1, --打印数组a的所有值 for key,value in ipairs(table) do print(key..value) end 类似C#的foreach
10.条件控制语句 if( 布尔表达式 1) then --[ 在布尔表达式 1 为 true 时执行该语句块 --] elseif( 布尔表达式 2) then --[ 在布尔表达式 2 为 true 时执行该语句块 --] else --[ 如果以上布尔表达式都不为 true 则执行该语句块 --] end 要注意的是,在LUA中0表示true
11.函数的可变参数 function average(...) result = 0 local arg={...} for i,v in ipairs(arg) do result = result + v end print("总共传入 " .. #arg .. " 个数") return result/#arg end print("平均值为",average(10,5,3,4,5,6))
12.LUA的逻辑运算符
13.LUA模块 -- 文件名为 module.lua -- 定义一个名为 module 的模块 module = {} -- 定义一个常量 module.constant = "这是一个常量" -- 定义一个函数 function module.func1() io.write("这是一个公有函数!\n") end local function func2() print("这是一个私有函数!") end function module.func3() -- 私有函数,因此是不能从外部访问模块里的这个私有函数,必须通过模块里的公有函数来调用. func2() end return module
14.加载模块:require("<模块名>") 或者 require "<模块名>" -- test_module.lua 文件 -- module 模块为上文提到到 module.lua -- 也可以给模块定义一个别名变量:local m = require("module") require("module") print(module.constant) module.func3()
15.加载C/C++模块 path = "C:\\windows\\luasocket.dll" --这是 Window 平台下 local f = assert(loadlib(path, "luaopen_socket")) --assert断言是否加载成功 f() -- 真正打开库
|
请发表评论