云服务器做网站要备案吗,网站做漏洞扫描费用,开发asp网站需要用到什么服务器,html5网站制作分工Lua EmmyLua 注解详解 Why 为了使 IDE 编码体验和强语言相近 让 IDE 提前发现编码错误 BUG 查找更方便 代码阅读更方便 建议 明确字段类型 明确字段访问修饰符 明确方法参数类型 善用 “:” 继承 “|” 或 ,多个 支持格式 –类 —class MY_TYPE[:PARENT_TYPE] [com…Lua EmmyLua 注解详解 Why 为了使 IDE 编码体验和强语言相近 让 IDE 提前发现编码错误 BUG 查找更方便 代码阅读更方便 建议 明确字段类型 明确字段访问修饰符 明确方法参数类型 善用 “:” 继承 “|” 或 ,多个 支持格式 –类 —class MY_TYPE[:PARENT_TYPE] [comment] –类型 —type MY_TYPE[|OTHER_TYPE] [comment] –别名 —alias NEW_NAME TYPE –参数 —param param_name MY_TYPE[|other_type] [comment] –返回值 —return MY_TYPE[|OTHER_TYPE] [comment] –字段 —field [public|protected|private] field_name FIELD_TYPE[|OTHER_TYPE] [comment] –泛型 —generic T1 [: PARENT_TYPE] [, T2 [: PARENT_TYPE]] –不定参数 —vararg TYPE –内嵌语言 —language LANGUAGE_ID –数组 —type MY_TYPE[] –字典 —type tableKEY_TYPE, VALUE_TYPE –函数 —type fun(param:MY_TYPE):RETURN_TYPE 官网完整例子 —class Transport parent class —field public name string local transport {}
function transport:move() end
—class Car : Transport Car extends Transport local car {} function car:move() end
—class Ship : Transport Ship extends Transport local ship {}
—param type number parameter type —return Car|Ship may return Car or Ship local function create(type) – ignored end
local obj create(1) —now you can see completion for obj
—type Car local obj2 —now you can see completion for obj2
local list { obj, obj2 } —param v Transport for _, v in ipairs(list) do —not you can see completion for v end 自己验证例子 —class TestBase 基类 —field protected key number 基类字段
—class Test : TestBase 测试类 —field bool boolean boolean 类型字段 —field numberArray number[] 数组 —field numberDictionary tablenumber,number 字典
—type Test local Test {}
—type number number 类型字段后期扩展字段 IDE 不能识别注释 Test.num 0
—方法 1 function Test:Func1() –字段测试 self.key 0 --能跳转基类 self.bool false self.num 1 --IDE 不能识别注释 for i, v in ipairs(self.numberArray) do end for k, v in pairs(self.numberDictionary) do end --遍历能识别 k v 类型
–方法测试 self:Func2(“张三”) local tempFunc3 self:Func3(“李四”) local tempFunc4A, tempFunc4B self:Func4(“王五”, false) local tempFunc5 self:Func5(false) 1 2 3 4 5 end
—方法 2 有参数 —param name string 名字 function Test:Func2(name) end
—方法 3 有返回值 —return string 返回类型 function Test:Func3(name) return name end
—方法 4 多参数 多返回值 —param name string 名字 —param sex boolean 性别 —return string , number 返回类型 function Test:Func4(name, sex) return name, sex end
—方法 5 参数多类型 返回值多类型 —param sex string | boolean 性别 —return string | boolean 返回类型 function Test:Func5(sex) return sex end
—方法 6 参数为方法 —param func fun(key:number):string 函数 function Test:Func6(func) return func(1) end
–使用 see 注解来标注一个引用 —see Test#Func1
–下面的不常用
–不定参数注解 —vararg string —return string local function format(…) local tbl { … } – inferred as string[] end
–泛型 –几乎不用 C#用是因为用 object 作为参数 有装箱拆箱消耗 lua 语言天然不需要
—class Goods 物品基类 —field public price number 价格
—class Food : Goods 食物 —field public cal number 卡路里
—class Phone : Goods 手机 —field public battery number 电量
—generic T : Goods —param object T function Test:GetPrice(object) return object.price end
–内嵌语言 —language JSON local jsonText [[{ “name”:“Emmy” }]]
return Test