作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我能够使用折叠来展平列表
flattenWithFold(Iterable list) => list.fold([], (List xs, s) {
s is Iterable ? xs.addAll(flattenWithFold(s)) : xs.add(s);
return xs;
});
执行时
print(flattenWithFold([1,[3,5,[1,2]],[2,1],6]));
它产生正确的结果 [1, 3, 5, 1, 2, 2, 1, 6]
但是当我尝试重构以使用 ..add 时,它会产生错误的结果
flattenWithFold1(Iterable list) => list.fold([], (List xs, s) => xs..add(
s is Iterable ? xs.addAll(flattenWithFold1(s)) : s));
谁能解释一下为什么执行时出现 null [1, 3, 5, 1, 2, null, null, 2, 1, null, 6] ?
print(flattenWithFold1([1,[3,5,[1,2]],[2,1],6]));
最佳答案
结果中会出现 null
,因为如果 s
是 Iterable
,那么您正在执行 xs..add(xs. addAll(flattenWithFold1(s))
。addAll
是一个 void
方法,但由于您将其用作表达式,因此它返回 null
。因此,您将扁平化元素添加到 xs
中,但随后添加 null
,这是 void
的返回值方法。
关于dart - 折叠压平列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41817994/
有没有办法强制TSpeedButton重新绘制平坦? 使用触摸屏显示器时,鼠标不会移出按钮,因此即使您单击其他按钮,凸起的边框也会保留在屏幕上。 最佳答案 看起来这不是我可以在没有触摸屏的情况下重现的
我有一个包含很多 acroform 的 pdf,我对其进行了一些操作,从而生成了一个新的 pdf。所以我有 PDF-1(这是原始的)和 PDF-2(只是 PDF-1 的副本),现在我想合并它们。两个
我目前正在调查 RxJS's .merge但是我也会在这里问这个问题,因为我发现这里的解释有时非常精彩。 好的,我有一个根据用户输入打开模态窗口的表单,我订阅模态关闭事件并传回一些我将在调用/订阅服务
我是一名优秀的程序员,十分优秀!