如何在Scala中创建对象列表(即单例)?

时间:2013-06-04 17:08:30

标签: scala types

假设我有以下代码

trait T

object O extends T

现在假设我要创建一个大小为10的List[T],它由O填充。 换句话说,列表应该看起来像(O, O, O,..., O)

尝试使用(1 until 10) map (x => O) toList的常规Scala方式创建List[O.type]

感谢。

2 个答案:

答案 0 :(得分:4)

问题是scala推断出最具体的类型。在您的情况下,O对象的特定类型:O.type。所以你需要精确的类型。

顺便说一句,tt不是scala方式,最好这样做:

List.fill(10)(O)

但它也不会产生List[T]。所以你需要这样做:

List.fill[T](10)(O)

答案 1 :(得分:3)

明确指定您的类型:

val l: List[T] = (1 until 10) map (x => O) toList