Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
假设我有以下代码
trait T object O extends T
现在假设我想创建一个List[T]大小为 10 的,由 O 填充。换句话说,列表应该看起来像(O, O, O,..., O).
List[T]
(O, O, O,..., O)
尝试使用通常的 Scala 方式(1 until 10) map (x => O) toList创建一个List[O.type].
(1 until 10) map (x => O) toList
List[O.type]
谢谢。
问题是 scala 推断出最具体的类型。在您的情况下,对象的特定类型O:O.type. 所以你需要精确的类型。
O
O.type
顺便说一句,tt不是scala的方法,最好这样做:
List.fill(10)(O)
但它也不会产生List[T]。所以你需要这样做:
List.fill[T](10)(O)
明确指定您的类型:
val l: List[T] = (1 until 10) map (x => O) toList