【发布时间】:2021-07-05 03:28:23
【问题描述】:
Option.tapEach 的 scaladoc 声明“返回:与此相同的逻辑集合”,正如以 tap 和 foreach 命名的操作所期望的一样。但是,它不会返回Option,而是返回由List 支持的Iterable:
scala> import scala.util.chaining._
scala> Option(5).tap(_.foreach(_ => ()))
val res0: Option[Int] = Some(5)
scala> Option(5).tapEach(_ => ())
val res1: Iterable[Int] = List(5)
(已针对 Scala 2.13.5 和 3.0.0-RC1 验证)
是否有充分的理由返回 Iterable 而不是 Option,或者这只是被忽略了(最终可能会得到修复)?
【问题讨论】:
-
Option没有自己的tapEach实现,它继承自Iterable。因此结果。