gpt4 book ai didi

dart - 实例化类和调用可调用类函数的区别

转载 作者:行者123 更新时间:2023-12-04 15:08:04 24 4
gpt4 key购买 nike

Dart 文档说在从类中实例化对象时,'new' 运算符是可选的。它还说您可以通过在类中定义 Call() 函数来将类定义为可调用函数。

给定一个类

Class MyClass

我在该类中同时定义了一个构造函数和 Call() 函数(它们都没有被定义为接受任何参数)

somevar 的值是多少?

dynamic somevar = MyClass();

它会是 MyClass 的实例还是 Call() 函数的返回值?

最佳答案

Dart Language Tour称它们为“可调用类”,但这是用词不当。它们是可调用对象。

通常,call() 是类的实例 上的方法,而不是类本身。 MyClass() 将始终调用 MyClass 的未命名构造函数。

更具体地说:

class MyClass {
void call() {
print('Hello world!');
}
}

void main() {
var object = MyClass(); // Invokes the (implicit) unnamed MyClass constructor.
object(); // Invokes the call() method.
}

关于dart - 实例化类和调用可调用类函数的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65712728/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com