📜  必须提供函数体颤振 - Dart (1)

📅  最后修改于: 2023-12-03 14:54:18.569000             🧑  作者: Mango

必须提供函数体颤振 - Dart

在Dart中,函数声明必须指定函数主体。如果没有提供函数体,则会抛出“必须提供函数体”的错误。

这个错误的原因是因为当调用函数时,需要执行函数体来计算并返回结果。如果没有函数体,编译器无法执行任何操作,因此无法返回结果。

下面是一个示例函数声明,其中函数体未提供:

String helloWorld();

这将抛出以下错误:

Error: Non-abstract method 'helloWorld' must have a body.
String helloWorld();

为了解决这个问题,我们需要提供函数体。这可以通过添加一对大括号来完成,如下所示:

String helloWorld() {
  return "Hello, World!";
}

这个函数现在可以被正确调用,并返回一个字符串。

注意,如果你使用箭头函数,则必须提供一个函数体。例如,下面的函数将产生相同的错误:

String helloWorld() =>;

我们需要将箭头函数改为使用大括号:

String helloWorld() => "Hello, World!";

这个函数现在可以被正确调用,并返回同样的字符串。

除了以上两种情况,还有一种特殊情况是抽象函数。抽象函数只是指定函数签名,而不提供函数体。这种函数通常用于定义接口和抽象类。一个抽象函数的示例可能是这样的:

abstract class Animal {
  String speak();
}

这个抽象类定义了一个名为speak()的函数,但没有提供函数体。这是因为每个继承该类的类都必须提供自己的实现。

总结:

  • Dart中的函数声明必须提供函数体。
  • 如果未提供函数体,则会引发“必须提供函数体”的错误。
  • 抽象函数只指定函数签名,不提供函数体,通常用于定义接口和抽象类。