绑定在集合类型中的 Scala 视图

Scala view bound in collection type

我有一组可以隐式转换为字符串的元素。如何让它看起来像一个实际的字符串集合?

def foo[A <% String](it: Iterator[A]) = {
  val its: Iterator[String] = ???
}

(我知道视图边界已被弃用,但让我们假设 foo 的签名是固定的,覆盖了遗留方法。)

我想出的一个解决方案是在 Iterator[A]Iterator[String] 之间定义一个简单的转换器 class,但这对于其他集合 classes 来说可能很麻烦许多抽象方法。是否有处理这种情况的标准方法,无需大量额外代码?

A <% String 只是隐式 A => String

的糖分
def foo[A](it: Iterator[A])(conv: A => String) = {
  val its: Iterator[String] = it map conv
}

(如果您真的想使用 <% 语法,您可以使用 implicitly[A => String] 获取块内的函数)