我有一组可隐式转换为String的元素。如何使它看起来像一个字符串的实际集合?
def foo[A <% String](it: Iterator[A]) = {
val its: Iterator[String] = ???
}
(我知道视图边界已被弃用,但让我们假设foo
的签名是固定的,覆盖了遗留方法。)
我可以提出的一个解决方案是在Iterator[A]
和Iterator[String]
之间定义一个简单的转换器类,但对于具有许多抽象方法的其他集合类来说,这可能很麻烦。是否有一种处理这种情况的标准方法,没有重要的额外代码?
答案 0 :(得分:1)
A <% String
只是隐含A => String
def foo[A](it: Iterator[A])(conv: A => String) = {
val its: Iterator[String] = it map conv
}
(如果您真的想使用<%
语法,可以使用implicitly[A => String]
获取块内的功能。