当我使用 Seq[T] 构造函数时创建了什么具体的数据类型?

zsl*_*ton 3 collections scala traits seq

Scala 允许我Seq使用以下语法直接实例化一个实现trait的对象:

val numbers: Seq[Int] = Seq(1, 2, 3)
val names: Seq[String] = Seq("Alice", "Bob", "Charles")
Run Code Online (Sandbox Code Playgroud)
  1. 既然Seq是 trait 而不是具体的实现,那么什么数据类型是numbers和 的基础names
  2. 我可以为自己解决这个问题的最佳方法是什么?
  3. 直接创建 trait 对象是惯用的吗?

谢谢!

Tza*_*har 5

为完整起见:答案也可以在Seq's (the object,not the trait ) Scaladocs 中找到

该对象提供了一组操作来创建 Seq 值。Seq 的当前默认实现是一个列表。