在Scala中,有一种方便的约定,即使用伴随对象的apply方法通过伴随对象提供集合工厂方法.所以,如果我想创建一个包含元素1,2和3的列表,我只是使用List(1, 2, 3).该模式在所有集合类型中都是一致的.
在Kotlin,如果我写,List(1, 2, 3)我得到编译错误.要创建包含1,2和3的列表,必须使用listOf(1, 2, 3). List是一个接口,所以它显然没有构造函数.可能有一个伴侣对象,但没有一个.有一个List函数,虽然签名不同于Scala(public inline fun <T> List(size: Int, init: (index: Int) -> T): List<T>)的预期.
那么,为什么Kotlin集合库设计者选择不遵循类似于Scala中的集合工厂的统一约定?
kotlin ×1