- 主题:review代码,发现这个
list.stream().map(resp->{
resp.setMainSubjectImgUrl(courseArticlesImageMapper.findByArti
clesIdAndIsMasterAndDelFlag(resp.getId(), 1, DeleteFlagEnum.NORMAL.getValue())
.getImageUrl());
return resp;
}).collect(Collectors.toList());
我问他为啥不直接foreach呢
这都是啥习惯啊
--
FROM 120.229.207.*
函數式編程的好處:
清晰且易于理解 - 可以将问题分解为一系列有明确输入和输出的函数,易于实现和测试。
可复用性高 - 函数可以在不同的上下文中重复调用,且函数之间相互独立,这大大提高了代码重用性。
易于并发 - 由于函数不依赖外部状态,即使在并发环境下,也可以保证不会存发竞争条件。
稳定性高 - 不可变数据结构可以保证数据不会被修改,减轻了代码的不确定性。
函數式編程的壞處:
学习曲线陡峭 - 函数式编程需要开发者学习新的概念和技术,不是那么容易掌握。
性能问题 - 可能导致额外的内存消耗和计算开销,需要开发者运用好的算法和数据结构来实现高效的程序。
不支持所有场景 - 函数式编程更适合处理复杂计算,但对于处理大量IO和mutate的任务,性能并不占优。
可读性差 - 与面向对象编程相比,函数式编程可能导致代码较长、累赘、难以阅读,而且调试可能更加困难。
--
FROM 203.145.94.*
我们这也是,基本上都要求stream,唉
【 在 iwannabe 的大作中提到: 】
: list.stream().map(resp->{
: resp.setMainSubjectImgUrl(courseArticlesImageMapper.findByArti
: clesIdAndIsMasterAndDelFlag(resp.getId(), 1, DeleteFl
: ..................
发自「今日水木 on iPhone 12 Pro」
--
FROM 111.192.100.*
说的是这个功能不需要map,foreach就行了
【 在 zeroxin 的大作中提到: 】
: 我们这也是,基本上都要求stream,唉
: 发自「今日水木 on iPhone 12 Pro」
--
FROM 120.229.207.*
foreach是可以用但也不是必须
可能写的时候从其他地方复制的
或者以前有其他功能,改动后才是
很多可能的原因,更多是风格问题,不算错误
换个角度看问题
--
FROM 223.104.39.*
这个必须得改了啊
【 在 iwannabe 的大作中提到: 】
: 标 题: review代码,发现这个
: 发信站: 水木社区 (Sat May 20 10:59:40 2023), 站内
:
: list.stream().map(resp->{
: resp.setMainSubjectImgUrl(courseArticlesImageMapper.findByArti
: clesIdAndIsMasterAndDelFlag(resp.getId(), 1, DeleteFlagEnum.NORMAL.getValue())
: .getImageUrl());
: return resp;
: }).collect(Collectors.toList());
:
: 我问他为啥不直接foreach呢
: 这都是啥习惯啊
:
:
: --
: 用革命的魔法对抗反革命的魔法
:
:
: ※ 来源:·水木社区 mysmth.net·[FROM: 120.229.207.*]
--
FROM 114.253.33.*
咨询个问题:
list都需要用stream操作吗?
一个for循环就搞定了,有必要这么费事?
【 在 iwannabe 的大作中提到: 】
: list.stream().map(resp->{
: resp.setMainSubjectImgUrl(courseArticlesImageMapper.findByArti
: clesIdAndIsMasterAndDelFlag(resp.getId(), 1, DeleteFlagEnum.NORMAL.getValue())
: ...................
--
FROM 120.244.234.*
"清晰,易于理解"和"可读性差"怎么感觉有些矛盾啊
【 在 cutepig 的大作中提到: 】
: 函數式編程的好處:
:
: 清晰且易于理解 \- 可以将问题分解为一系列有明确输入和输出的函数,易于实现和测试。
:
: 可复用性高 \- 函数可以在不同的上下文中重复调用,且函数之间相互独立,这大大提高了代码重用性。
:
: 易于并发 \- 由于函数不依赖外部状态,即使在并
: ..................
发自「今日水木 on iOS」
--
FROM 61.148.243.*
话说foreach一般是原地修改方便吧,这个流操作是其实生成了一个新list,那从思路上不太一样。他这里map的函数体又是原地修改,最后生成的新list和原list是一样的,所以比较拧巴。
【 在 iwannabe 的大作中提到: 】
: list.stream().map(resp->{
: resp.setMainSubjectImgUrl(courseArticlesImageMapper.findByArti
: clesIdAndIsMasterAndDelFlag(resp.getId(), 1, DeleteFlagEnum.NORMAL.getValue())
: ...................
--
FROM 114.249.216.*
crud boy!
--
FROM 222.129.198.*