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

uqxowvwt  于 2023-09-28  发布在  其他
关注(0)|答案(2)|浏览(186)

假设我有:

Function(int x, int y) func = (int x, int y) {
  return (1, 2); // error
};

如何从上面的函数中返回(1,2)?

kokeuurv

kokeuurv1#

Dart中的方法只能返回一个值。因此,如果你需要返回多个值,你需要将它们打包到另一个对象中,例如。可以是您自己定义的类、列表、Map或其他东西。
在使用x和y的情况下,可以考虑使用dart:math中的Point类:

import 'dart:math';

Point<int> func(int x, int y) => Point(x, y);

在Dart中返回多个值的支持是一个正在进行的讨论:https://github.com/dart-lang/language/issues/68

r55awzrz

r55awzrz2#

现在,Dart 3.0中的函数可以通过Record功能返回多个值。

(int, int) testFunc(int x, int y) {
     return (1, 2);
   }

使用记录模式进行析构

var (x, y) = testFunc(2,3);
 print(x); // Prints 1
 print(y); // Prints 2

相关问题