返回

Dart 函数 (四):深入剖析参数与类特性

Android

函数参数

在 Dart 中,函数参数可以分为必要参数和可选参数。必要参数是调用函数时必须提供的参数,而可选参数则是非必需的,可以根据需要提供。

必要参数

必要参数在函数签名中没有指定默认值,因此在调用函数时必须显式提供。例如:

void greet(String name) {
  print('Hello, $name!');
}

greet('John'); // 必须提供 "John" 作为参数

可选参数

可选参数在函数签名中指定了默认值,在调用函数时可以省略。如果省略可选参数,则将使用其默认值。例如:

void greet(String name, [String? greeting = 'Hello']) {
  print('$greeting, $name!');
}

greet('John'); // 默认问候语为 "Hello"
greet('John', 'Good morning'); // 自定义问候语

默认值

无论必要参数还是可选参数,都可以定义默认值。默认值必须是编译时常量,例如字符串、数字或布尔值。例如:

void greet(String name, [int age = 18]) {
  print('Hello, $name! You are $age years old.');
}

greet('John'); // 默认年龄为 18
greet('John', 25); // 自定义年龄

函数类

在 Dart 中,一切皆对象,包括函数。所有函数都属于一个名为 Function 的类,该类继承自 Object 类。Function 类提供了诸如 call() 方法之类的基本功能,该方法允许函数被调用。

示例代码

以下示例代码演示了 Dart 中函数参数和类的特性:

void main() {
  // 定义一个带有必要参数和可选参数的函数
  void greet(String name, [String? greeting = 'Hello']) {
    print('$greeting, $name!');
  }

  // 调用函数,省略可选参数
  greet('John');

  // 调用函数,提供自定义可选参数
  greet('Mary', 'Good morning');

  // 获取函数的类型并打印其名称
  print(greet.runtimeType.toString()); // Function
}

输出:

Hello, John!
Good morning, Mary!
Function