1

假设我有以下代码

trait T

object O extends T

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

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

谢谢。

4

2 回答 2

4

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

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

List.fill(10)(O)

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

List.fill[T](10)(O)
于 2013-06-04T17:32:46.927 回答
3

明确指定您的类型:

val l: List[T] = (1 until 10) map (x => O) toList
于 2013-06-04T17:22:29.467 回答