返回

Dart 基础二:函数

Android

函数:不仅仅是代码块

在大多数编程语言中,函数被视为执行特定任务的代码块。然而,在 Dart 中,函数更进一步,被视为一等对象。这意味着它们具有类型(Function)并且可以像其他变量一样被操作。

这种方法带来了许多好处,其中之一是能够将函数分配给变量。这使你能够创建可重用的代码片段,然后在需要时调用它们。例如:

Function addTwoNumbers = (int a, int b) => a + b;

这行代码创建一个函数,该函数接受两个整数参数并返回它们的和。然后,我们将此函数分配给名为 addTwoNumbers 的变量。现在,我们可以像调用任何其他函数一样调用它:

int result = addTwoNumbers(3, 5); // result 为 8

函数作为参数

Dart 中函数作为一等对象的一个更强大的特性是能够将它们作为参数传递给其他函数。这使你能够创建更高阶的函数,这些函数可以根据其输入函数的行为进行操作。

例如,考虑以下函数,它接受一个函数作为参数并对其进行调用:

void callFunction(Function function) {
  function();
}

现在,我们可以创建一个函数并将其作为参数传递给 callFunction:

void printHelloWorld() {
  print("Hello, world!");
}

callFunction(printHelloWorld); // 输出 "Hello, world!"

可调用类

除了函数,Dart 还允许你将类的实例当作方法来调用。这称为可调用类。

要创建一个可调用类,只需创建一个带有 call 方法的类。例如:

class Adder {
  int call(int a, int b) => a + b;
}

这个 Adder 类具有一个 call 方法,它接受两个整数参数并返回它们的和。现在,我们可以像调用任何其他函数一样调用此类:

Adder adder = Adder();
int result = adder(3, 5); // result 为 8

结论

Dart 中的函数是一项强大的工具,可以让你编写出灵活且可重用的代码。通过理解函数作为一等对象以及可调用类的概念,你可以充分利用 Dart 的面向对象功能。在接下来的文章中,我们将深入探讨 Dart 中函数的更多高级用法,例如闭包和生成器。