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

我想从一个方法中得到两个字符串,但里面的计算需要几秒钟,所以我不知道如何在计算后返回两个值并将它们分配给一个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;
    }
  }
}

解决方案:

你可以做到这一点的最好方法是使用一个 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();
  }

给TA打赏
共{{data.count}}人
人已打赏
未分类

如何用find或findOrFail自动加载与Adonis的关系?

2022-9-9 17:03:29

未分类

在jQuery中使用setTimeout

2022-9-9 17:03:31

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索