如何从一个方法中返回两个值

问题描述 投票:0回答:1

我想从一个方法中得到两个字符串,但里面的计算需要几秒钟,所以我不知道如何在计算后返回两个值并将它们分配给一个List或两个Strings。

我是这样调用这个方法的--------。

  @override
  void initState() {
    var calc = new Calculation().resultCalculation(dateOfBirth: dob, timeOfBirth: tob, gender: genderId, city: cities);
    results = calc;
    print(results);
    print(results[0]);
    super.initState();
  }

我是这样返回值的

    return [bornDay, bornCity]; 

如果有人能给我一个更好的方法来调用这个方法并返回两个值,那就太好了 :)

需要时间的方法 -

cityCalculate() async {
  DateTime earlyTime;
  DateTime lateTime;
  String city;

  QuerySnapshot snaps =
      await Firestore.instance.collection('cities').getDocuments();
  for (var docs in snaps.documents) {
    earlyTime = DateTime.parse(docs['beforeTime']);
    lateTime = DateTime.parse(docs['afterTime']);
    city = docs['city'];
    if (birthDayTime.isAfter(earlyTime) && birthDayTime.isBefore(lateTime)) {
      bornCity = city;
      break;
    }
  }
}
flutter dart methods return
1个回答
1
投票

你可以做到这一点的最好方法是使用一个 MapList 如你所做的)。

  1. 使用Map return {"bornDay": bornDay, "bornCity" bornCity"}
  2. 使用List(如你所做的) return [bornDay, bornCity]

像这样调用函数

@override
  void initState() async{
    var calc = await Calculation().resultCalculation(dateOfBirth: dob, timeOfBirth: tob, gender: genderId, city: cities);
    results = calc;
    print(results);
    print(results[0]);
    super.initState();
  }
© www.soinside.com 2019 - 2024. All rights reserved.