与OOP相关的Lua术语
切中要害;我做Lua有一段时间了,但从来没有把术语具体化,所以我在谷歌上搜索了几个小时,还没有找到一个明确的答案 与Lua中的OOP相关,使用的术语包括:与OOP相关的Lua术语,lua,Lua,切中要害;我做Lua有一段时间了,但从来没有把术语具体化,所以我在谷歌上搜索了几个小时,还没有找到一个明确的答案 与Lua中的OOP相关,使用的术语包括: 反对 阶级 作用 方法 桌子 问题是,什么时候正确使用这些工具?例如,在下面的示例中: addon = { } function addon:test_func( ) return 'hi' end Q:根据我对Lua和OOP的理解,addon是一个表,然而,我读到它也可以是一个对象——但从技术上讲它是一个对象吗?在该表中创建函
- 反对
- 阶级
- 作用
- 方法
- 桌子
addon = { }
function addon:test_func( )
return 'hi'
end
Q:根据我对Lua和OOP的理解,addon
是一个表,然而,我读到它也可以是一个对象——但从技术上讲它是一个对象吗?在该表中创建函数之后
Q:test\u func
是一个函数,但是,我读到,当它放在一个表(类)中时,它就变成了一个“方法”
Q:整行插件:test_func()
,我知道冒号是一个运算符,但是整行文本的术语是什么?一个类本身
最后,对于此示例代码:
function addon:test_func( id, name )
end
Q:什么是id和name,因为我看到一些人将它们识别为参数,但其他领域将它们分类为参数,所以我一直使用参数
简言之,这些词的正确术语是什么?它们什么时候会变成现在的样子
谢谢
从我对Lua和OOP的理解来看,addon
是一个表,然而,我读到它也可以是一个对象——但是当它从技术上说是一个对象时?在该表中创建函数之后
对象不是一个定义良好的术语。我见过它(在C中)被定义为任何值。在Lua,我认为它是一张桌子的同义词。您还可以将其定义为类的实例
test\u func
是一个函数,但是,我读到,当它放在一个表(类)中时,它就变成了一个“方法”
你基本上是对的。方法是使用冒号表示法调用的任何函数。元方法也是方法,因为与常规方法一样,它们定义了表的行为
整行插件:test_func()
,我知道冒号是一个运算符,但是整行文本集的术语是什么?一个类本身
这段代码没有名字。它只是方法定义的一部分
而且,我不会把冒号称为接线员。运算符将是x+y
中的加号,其中x
和y
本身都有意义。在addon:test_func()
中,test_func
仅在表addon
中有意义,并且仅在调用或定义方法时使用冒号有效。冒号实际上是一种语法糖,其中实数运算符是索引运算符:[]
。假设您正在调用该方法,扩展将是:addon['test\u func'](addon)
什么是id和name,因为我看到一些人将它们识别为参数,但其他领域将它们分类为参数,所以我一直使用参数
它们是参数。参数是您在函数签名中声明的名称。参数是传递给函数的值。谢谢!所以“对象”可以对任何事物进行分类,而不一定局限于某一特定类型。如果使用addon.test\u func()和addon:test\u func(),术语是否会改变?我所知道的是,对于冒号,self作为第一个参数传递。因为Lua非常灵活,所以很难严格定义什么是方法。如果
test\u func
应该定义一个表的行为(即,您打算用冒号调用它),那么它就是一个方法。如果addon
只不过是函数的存储空间,那么它不是一种方法。