gpt4 book ai didi

flutter - dart gRPC:函数的含义是什么?

转载 作者:行者123 更新时间:2023-12-03 04:37:43 28 4
gpt4 key购买 nike

我是flutter(dart)gRPC的新手。我正在学习https://grpc.io/docs/languages/dart/basics/给出的教程。但是我对该函数的dart语法感到困惑。

Future<Feature> getFeature(grpc.ServiceCall call, Point request) async {
return featuresDb.firstWhere((f) => f.location == request,
orElse: () => Feature()..location = request);
}
实际上,我不理解 f参数的含义以及为什么存在 orElse。我发现 =>意味着箭头功能,可以简单地理解为返回语句,但我不能说我完全理解了它。任何解释将不胜感激。

最佳答案

firstWhere方法采用PredicatePredicate只是一个接受对象并返回truefalse的函数。因此,基本上是说“给我列表中的第一个对象,其中我给您的函数返回true。orElse是一个可选的命名参数,它表示如果到达列表的末尾而不是单个当通过我刚刚提供的函数传递时,对象返回true,然后作为最后手段执行此函数,并返回它产生的任何值。您可以将Predicate视为过滤器。它接受一个对象,如果应该通过,则返回true。过滤器或false(如果它不应该通过过滤器)firstWhere基本上会检查每个元素,以查看它是否通过了过滤器,并且第一次执行该操作时,它将返回该元素。使用orElse生产者函数生成一些要返回的值,因为没有任何东西可以自己实现。(f) => f.location == request是根据其参数返回true或false的函数-这是Predicate() => Feature()..location = requestProducer。没有参数但产生值的函数。在这种情况下,其值等于新的Featurelocation值等于requestassignment评估为分配的值。级联..确保将返回Feature,而不是Point对象request
所以基本上您可以这样想:list.giveMeTheFirstObjectWhere(thisFunctionReturnsTrue, orElse: giveMeTheValueThisFunctionProvidesIfNoneOfTheElementsReturnedTrueUsingTheOtherFunction)因此,此代码的目的似乎是,检查是否已经存在Feature,如果存在,则返回第一个此类Feature。如果它不存在,它将创建一个新的Feature并返回它(但是,这个新创建的代码不会自动添加到列表/数据库中)

关于flutter - dart gRPC:函数的含义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63843282/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com