假设我有以下代码
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]
。
感谢。
答案 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