在Lua中为面向对象编程库设计的问题
2020-6-20 9:12:55
收藏:0
阅读:615
评论:3
如何调用 super()?
我需要做出选择。我需要解决调用 super() 的三个参数:
- 调用方的类(CallerClass)
- 要传递的实例(self)
- 方法的名称(method)
我在以下三种方式之间犹豫:
--# 当前方式:
self:super(CallerClass):method()
--# 变体,现在我认为更简洁的方式:
CallerClass:super(self):method()
--# Python 风格,也挺好:
super(CallerClass, self):method()
在你的看法中,哪种看起来更漂亮或更易于记忆?
我需要一个 Class 符号吗?
在当前版本中,仅有的概念是一个名为“Object”的表格,你可以对其进行子类化。我有另一个版本,其中我引入了一个 Class 符号。
它的用途是告诉实例来自哪个类。例如 :
assert(Object:isKindOf(Class))
local object = Object:new()
assert(not object:isKindOf(Class))
我发现这非常方便,可以通过以下方式在方法开始时文档化和强制执行必须从类中调用该方法:
assert(self:isKindOf(Class))
在 Lua 中很有用吗?你怎么看?感谢!
原文链接 https://stackoverflow.com/questions/224658
点赞
stackoverflow用户48310
我会说要有一个类对象——更多的信息/元数据更好。
2008-10-22 06:37:27
评论区的留言会收到邮件通知哦~
推荐文章
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
- 如何编写 Lua 模式将字符串(嵌套数组)转换为真正的数组?
- 如何创建一个 lua 脚本以针对特定键为 fluentbit 进行限流
--# Python style, which is nice too: super(CallerClass, self):method()
Python风格也很不错:
super(CallerClass, self):method()