下面是一个简单的dart 类:
class MyOperatorClass {
int operator () {
return 5;
}
}
我今天注意到,这段代码的编译没有任何问题.这让我想知道,operator ()
是什么意思?
通常在DART中,您使用operator
来实现运算符.也就是operator +(other)
或operator ~()
.但operator ()
似乎不是一个与之相关的接线员...
起初,我认为这是如何使对象成为可调用的,但事实证明,MyOperatorClass()()
不能编译(这是因为可调用对象实际上实现了call()
方法).我向ChatGPT询问了这一点,它完全搞不懂,反复询问operator ()
是否是创建可调用对象的有效方式,哈哈.
因此,如果创建可调用对象的方式是not,但它是does编译的,那么它实际上在做什么?它什么时候才能运行?