ForEach 没有返回值
在这里你不用去关心Query对象到底是什么,就跟Java8中的map、filter等等控制函数都会返回Stream一样,通过返回Query,来达到代码中流式编程的目的。
4.6.1 简单场景 select简单场景其中SelectT就是遍历了一个集合,然后做了一些运算,将运算之后的结果输出到了新的slice中。
SelectMany为集合中的每一个元素都返回一个Query,跟Java 8中的flatMap类似,flatMap则是为每个元素创建一个Stream。简单来说就是把一个二维数组给它拍平成一维数组。
4.6.2 复杂场景 4.7 GroupGroup根据指定的元素对结合进行分组,Group`的源码如下。
Key就是我们分组的时候用key,Group就是分组之后得到的对应key的元素列表。
好了,由于篇幅的原因,关于go-linq的使用就先介绍到这里,感兴趣的可以去go-linq官网查看全部的用法。
5. 关于go-linq的使用首先我认为使用go-linq不仅仅是为了“逃脱”检测工具对圈复杂度的检查,而是真正的通过重构自己的代码,让其变的可读性更佳。
举个例子,在某些复杂场景下,使用go-linq反而会让你的代码更加的难以理解。代码是需要给你和后续维护的同学看的,不要盲目的去追求低圈复杂度的代码,而疯狂的使用go-linq。
我个人其实只倾向于使用go-linq对集合的一些操作,其他的复杂情况,好的代码,加上适当的注释,才是不给其他人(包括你自己)挖坑的行为。而且并不是说所有的if else都是烂代码,如果必要的if else能够大大增加代码的可读性,何乐而不为?(这里当然说的不是那种满屏各种if else前套的代码)
好了以上就是本篇博客的全部内容了,如果你觉得这篇文章对你有帮助,还麻烦点个赞,关个注,分个享,留个言。