LUA模拟面向对象:类与对象

首先还是向大家介绍一下国产LUA框架Vanilla。 这次我们来看看Vanilla中如何用Lua 模拟面向对象编程。实现主要是使用lua的setemetatable特性来实现的。下面程序大体的处理流程是:

类和对象创建流程: 1.创建一个Controller在类模板程序。 2.在Controller:new方法里,创建返回一个实例对象instance(lua table),对象使用Controller的函数接口,做为对象实例产生的“类”模板。 3.使用new方法的形参,传递新建立对象的属性数据,成员变量。

[code] local Controller = {}

function Controller:new(app_config, tst_val) local instance = { app_config = app_config, tst_val = tst_val } setmetatable(instance, {__index = self}) return instance end

function Controller:display(view_tpl, values) end

function Controller:getTestField() return self.tst_val end

return Controller [/code]

测试类文件的流程: 1.用require引入contorller类定义文件。 2.创建对象初始化要使用的数据结构:config, val。 3.调用Controller类模板的new方法,创建新的对象实例,传入需要形参。 4.使用新创建的对象实例的getTestFiled()接口方法,返回我们在第三步传入的测试字符串:“test value” 5.输出返回值,确认是否与传入的数据一致。

[code] Controller = require “controller”

local config = { ip=”127.0.0.1”, port=”8080” } local val = “test value”

local obj_instance = Controller:new(config, val) local ret = obj_instance:getTestField() print(ret)

[/code]

作者:糖果

PS:转载到其它平台请注明作者姓名及原文链接,请勿用于商业用途。

https://github.com/idevz/vanilla

糖果

糖果

糖果
LUA教程

风控管理之蜜罐

**目录**{: #toc }* TOC{:toc}# 蜜罐在风控中经常要面临这个问题:哪部分流量来自黑产?可信度高吗?这关系到现有策略效果评估、问题定位、新策略效果评估、模型训练等多个环节。解决这类问题时,蜜罐就起到了一定作用。## 什么是蜜罐?通过一些手段,引诱黑灰产...… Continue reading

Apache APISIX在SAE应用市场发布

Published on December 09, 2019

APISIX后台管理路由创建接口

Published on December 06, 2019