gpt4 book ai didi

Dart 。当类没有实现接口(interface)时没有警告和错误

转载 作者:行者123 更新时间:2023-12-03 04:30:37 25 4
gpt4 key购买 nike

我无法理解 Dart 的这种“奇怪”行为。看上面的示例:

abstract class Swimmer {
int numOfSwim;
Swim();
}

class Human implements Swimmer {

}

当我运行此代码时,没有警告和错误。我从 DART_FLAGS='--enable_type_checks --enable_asserts' 开始 dartium .我勒个去?如果类实际上没有实现接口(interface),它如何实现接口(interface)。看起来 Dart 有点松散。

可能是 Dart 有一些 模式 要更严格。

最佳答案

Dart spec状态(p38):

It is a static warning if a concrete class does not have an implementation for a method in any of its superinterfaces unless it declares its own noSuchMethod method (10.10).



静态警告有助于开发人员发现错误,但不会干扰 Dart 程序的执行。另一方面,错误确实会影响程序的执行。您可以在 Dart 规范的第 10 页阅读有关警告和错误之间区别的更多信息。

既然是这种情况,在 Dartium 中运行代码就可以正常工作,因为缺少方法实现只是一个警告,而不是错误。如果你想捕捉这些警告,你可以使用 Dart Analyzer这将检查警告和错误。 Dart Editor 和 IntelliJ 等 IDE 集成了分析器,因此您不必手动运行它。

例如,在 Dart 编辑器中,您的代码将显示以下警告:

Missing concrete implementation of setter 'Swimmer.numOfSwim', 'Swimmer.Swim' and getter 'Swimmer.numOfSwim'

关于 Dart 。当类没有实现接口(interface)时没有警告和错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29265003/

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