草庐IT

reducer-combiner

全部标签

swift - 将异步方法转换为 Combine

我正努力全神贯注于Combine。这是我想转换为Combine的方法,以便它返回AnyPublisher。funcgetToken(completion:@escaping(Result)->Void){dispatchQueue.async{do{ifletlocalEncryptedToken=tryself.readTokenFromKeychain(){letdecryptedToken=tryself.tokenCryptoHelper.decrypt(encryptedToken:localEncryptedToken)DispatchQueue.main.async{co

swift - 使用 reduce 将结构的属性附加到数组

我有一个项目数组structItem{varid:String}如何使用reduce函数将所有ID附加到数组?我的尝试:self.items.reduce([String](),{$0.0.append($0.1.id)})但是编译器显示错误:Contextualclosuretype'(_,[Item])->_'expects2arguments,but1wasusedinclosurebody 最佳答案 试试这个:items.reduce([String](),{res,iteminvararr=resarr.append(it

arrays - 使用 reduce 或 joined 组合数组有什么区别?

考虑以下字符串数组:letarrayStrings=["H","e","l","l","o"]为了组合它的元素(将“Hello”作为单个字符串),我们可以:reduce它:letreducedString=arrayStrings.reduce("",{$0+$1})//"Hello"或join它:letjoinedString=arrayStrings.joined()//"Hello"两者都将返回“Hello”字符串作为输出。但是,在确定这种过程的更好选择时,要牢记什么逻辑?根据性能进行比较时有什么区别? 最佳答案 joined

ios - 什么 _ :_: and similar combinations of the colon and underscore mean in Swift?

这个问题在这里已经有了答案:Whatis_:inSwifttellingme?(3个答案)关闭7年前。在阅读Swift的文档时,Apple通常使用functionName(_:name:)或类似的东西。这个模式到底是什么,有时是_:_:,有时只是_:,和_:name:。我认为这与参数速记有关,但我不确定,并且在Swift的编程指南中找不到解释。谢谢!例子:insert(_:atIndex:)

function - 在 Swift 2.0 中使用 reduce() 时出错

注意:这也适用于Swift3.0当我尝试使用reduce函数时,我收到一条错误消息:reduceisunavailable:callthe'reduce()'methodonthesequence我已经想出了如何使用enumerate()函数来实现这一点,但我似乎无法解决这个问题。这是返回错误的代码行:varhashValue:Int{returnreduce(blocks,0){$0.hashValue^$1.hashValue}} 最佳答案 解决这个问题的方式与使用enumerate()解决问题的方式相同。在Swift2中,re

swift - 为什么从reduce的返回值解构元组会导致错误?

假设我有一个整数数组,我想得到所有偶数的总和和所有奇数的总和。例如,对于数组[1,2,3],所有奇数之和为4,所有偶数之和为2。这就是我的做法:array.reduce((odd:0,even:0),{(result,int)inifint%2==0{return(result.odd,result.even+int)}else{return(result.odd+int,result.even)}})这本身就很好,但是一旦我尝试解构返回的元组:let(oddSum,evenSum)=a.reduce((odd:0,even:0),{(result,int)inifint%2==0{r

JS操作数组神器——reduce(求和、出现次数、去重、分类)

一、简介reduce()对数组每个元素执行一次由您提供的reduce函数(升序执行),将其结果汇总为单个返回值。循环遍历能做的,reduce都可以做。比如数组根据元素某个属性求和、数组元素出现次数、数组去重、数组根据某个元素属性分类等等。arr.reduce((prev,cur,index,arr)=>{returnprev+cur},0)参数介绍prev必需。累计器累计回调的返回值;表示上一次调用回调时的返回值,或者初始值init;cur必需。表示当前正在处理的数组元素;index可选。表示当前正在处理的数组元素的索引,若提供init值,则起始索引为0,否则起始索引为1;arr可选。表示原数

Java 编译错误 : Method reference in combination with overloading

我有以下带有重载方法的类:importjava.util.ArrayList;importjava.util.concurrent.Callable;publicabstractclassTest{publicvoidtest1(){doStuff(ArrayList::new);//compilationerror}publicvoidtest2(){doStuff(()->newArrayList());}publicabstractvoiddoStuff(Runnablerunable);publicabstractvoiddoStuff(Callable>callable);}

java - JDK8批量采集操作库中奇怪的 "reduce"方法组

为什么新的JDK8Stream类仅包含以下reduce方法:Treduce(BinaryOperatorreducer)Treduce(Tidentity,BinaryOperatorreducer)Ureduce(Uidentity,BiFunctionreducer,BinaryOperatorcombiner)但不是对应于其他语言中的reduce/fold函数的明显方法(例如Haskellfoldl::(a->b->a)->a->[b]->a)并且可能如下所示:Ureduce(Uidentity,BiFunctionreducer)?相反,有一个类似的方法有一个额外的combin

java - 如何在 Java 8 中引用 reduce() 操作的结果?

我正在尝试写一个mkStringJava8中的函数,一个laScala的有用mkString遇到了2个我可以寻求帮助的问题:我无法提出mkString的第一个参数一个通用的Collection引用,例如Collectionc并让调用者调用任何类型的集合。无法引用reduce()的返回结果在线访问结果的长度以删除额外的前导分隔符。代码如下:publicstaticvoidmain(String[]args){Listnumbers=Arrays.asList(1,2,3,4,5);System.out.println(mkString(numbers,","));}publicstati