Dart| Flutter:如何返回一个函数中的多个值

3,158 阅读2分钟

Dart中的函数只返回一个单一的值。

有多种方法可以返回由以下类型包裹的多个值

  • 数组或列表
  • 创建一个类的对象
  • 设置
  • Tuple类

如何从Dart的一个函数中返回多个值

以下是从一个函数传递多个数据的多种方法

  • 创建一个类,并从一个函数中传递带值的对象

在这个例子中,函数想返回不同类型的多个值,所以将这些值包在一个类的对象中,并从函数中返回。

该函数的返回类型是类,并返回数据,使用类的属性访问数据。

下面是一个示例代码

class Employee {
  final int id;
  final String name;

  Employee(this.id, this.name);
}

main() {
  var employee = getData();
  print(employee.id); // 1
  print(employee.name); // john
}

Employee getData() {
  return Employee(1, 'john');
}

  • 将多个值包在数组和列表中,从一个函数中返回

在这个例子中,函数在列表或数组中返回不同类型的倍数。所以将这些值包在方括号中,并从一个函数中返回。

该函数的返回类型是List,并返回数据,使用list[index] 来访问数据。

下面是一个示例代码

main() {
  var employee = getData();
  print(employee[0]);
  print(employee[1]);
}

List getData() {
  return [1, 'john'];
}
  • 使用tuple来组合多个类型

tuple是一个来自谷歌的新类型。它被用来将多个类型结合成一个单一的类型。它提供了一个Tuple2 类。

Tuple2 对象可以用下面的语法来创建

const t = Tuple2(1, "string");

它包含两种类型int和string。函数可以返回这个对象。

可以用Tuple2.item1Tuple2.item2 属性来访问这些值。

下面是一个示例代码

import 'package:tuple/tuple.dart';

Tuple2 getData() {
  return new Tuple2(`42`, "john");
}

void main() {
  final data = getData();
  print(data.item1);
  print(data.item2);
}
  • 在一个函数中使用Set来返回多个类型的值 函数类型是Set,并返回多个值。

可以使用Set.firstSet.last 属性来访问Set的值。

下面是一个示例代码

main() {
  var employee = getData();
  print(employee.first);
  print(employee.last);
}

Set getData() {
  return {1, 'john'};
}

结论

总而言之,Dart或flutter函数只返回单一类型和数值。然而,我们可以使用多种方式--类对象、集合、列表、元组和数组。