如何在Scala中定义特定容器类型的方法?

时间:2012-09-28 21:09:11

标签: scala

我有一个val list = List[Foo](),我希望在List上定义某些方法,但只有在Foo类型时,请说list.prettyDisplay()

Scala可以吗?我正在查看有关高级类型(http://twitter.github.com/scala_school/advanced-types.html)的教程,但我认为我没有看到我在寻找的内容。

1 个答案:

答案 0 :(得分:4)

您可以定义从List[Foo]到实现prettyDisplay的某个类的隐式转换。由于其参数类型,此转换不适用于其他列表。

class Foo

implicit def betterFooList(l:List[Foo]) = new {
  def prettyDisplay() = ???
}

List(new Foo).prettyDisplay()