【发布时间】:2021-06-30 18:20:42
【问题描述】:
就像标题中问的那样,假设我想为table 类型添加一个自定义方法,比如说table:printContent(),Lua 中有什么方法可以实现这一点吗?我的意思是,纯粹的,Lua。例如,在 C# 中,您可以使用扩展来做到这一点:
using System;
namespace Main {
public static class Extension {
public static void printContent(this table mytable) {
foreach(var content in mytable) {
Console.WriteLine(content.ToString());
}
}
}
}
现在也可以,只是在 Lua 中?
启发我的问题(这个问题并没有告诉我我想学什么,是的,我想要 OOP,如果我想在 Lua 中进行修改)
【问题讨论】:
-
您的问题与您在帖子中链接的问题有何不同?
-
问题本身并没有什么不同,但正如我所写/指定的那样,解决方案确实与帖子相符。我想知道它是否可能,是与否,我不想听到任何其他信息(例如,您可以在没有 OOP 的情况下做到这一点,我真的很想知道我是否可以这样做,如果可以,那么如何)
-
对该问题的公认答案是“所有表都没有单一的元表”。这确实是这个问题的最佳答案。表格的设计并不是为了有一套千篇一律的方法。它们旨在表示各种不同的对象。
-
好的,谢谢,所以它对表格来说是“否”,但它可以是对类吗?不是我创建的自定义类(例如,如果我想修改,之前有类,如果我想修改这些类怎么办?我可以使用包装器,但还有其他方法吗?)
标签: c# lua meta-method