我有一个val list = List[Foo]()
,我希望在List
上定义某些方法,但只有在Foo
类型时,请说list.prettyDisplay()
。
Scala可以吗?我正在查看有关高级类型(http://twitter.github.com/scala_school/advanced-types.html)的教程,但我认为我没有看到我在寻找的内容。
答案 0 :(得分:4)
您可以定义从List[Foo]
到实现prettyDisplay
的某个类的隐式转换。由于其参数类型,此转换不适用于其他列表。
class Foo
implicit def betterFooList(l:List[Foo]) = new {
def prettyDisplay() = ???
}
List(new Foo).prettyDisplay()