Go stream让go流动起来~
Java的Stream编程 自从Java 8将函数式编程引入语言后,该语言通过Lambda表达式和Stream库两者的结合,展现了全新的编码方式。实现了简洁,高效,以及类似声明式的编码风格。 举个例子,如我们有个集合里面存放的是颜色的标签,我们想在集合中找出以“b”字符开头的标签,并进行排序,然后转换成大写字符标签,最后输出。如果用Java 8以前的编码方式,我们会进行多次轮询,最后输出结果: public static void main(String[] args) { List<String> colors = Arrays.asList("blue", "green", "brown", "grey", "red", "white", "black", "beige", "purple"); List<String> filteredAndSortedColors = new ArrayList<>(); for (String color : colors) { if (color.startsWith("b")) { filteredAndSortedColors.add(color); } } Collections.sort(filteredAndSortedColors); for (String color : filteredAndSortedColors) { System.out.println(color.toUpperCase()); } } 如果用Java 8的Lambda、Stream来实现,则代码会更加简洁、易懂,执行效率也会提高: public static void main(String args[]) { Stream.of("blue", "green", "brown", "grey", "red", "white", "black", "beige", "purple") .filter(s -> s.startsWith("b")) .sorted() .map(s -> s.toUpperCase()) .forEach(System.out::println); } Go的Stream编程 go语言中函数是第一公民,理论上我们可以实现更简洁的Stream框架。Stream的核心有以下几个方面: ...