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.item1 和Tuple2.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.first 和Set.last 属性来访问Set的值。
下面是一个示例代码
main() {
var employee = getData();
print(employee.first);
print(employee.last);
}
Set getData() {
return {1, 'john'};
}
结论
总而言之,Dart或flutter函数只返回单一类型和数值。然而,我们可以使用多种方式--类对象、集合、列表、元组和数组。