【发布时间】:2011-02-09 10:40:59
【问题描述】:
两者都存在例如这里:
Map.empty[Int, Int]
Map(1 -> 41).empty
Set().empty
Set.empty
但这里只有类方法存在:
List.empty //OK
List(1,2,3).empty //Doesn't exist
Array.empty //OK
Array("a").empty //Doesn't exist
empty 不是类方法的完美案例(因此不应该弃用实例方法 empty)吗?
或者应该将empty 实例方法添加到缺少它的类中?
从语言的角度来看,是否有任何事情使得仅将 empty 作为类方法变得困难(例如类型推断、更高种类的类型......)。
PS:
有人建议,如果没有实例方法empty,使用默认值的 Map 将更难实现:
Map[Int, Int](1->2, 21->42).withDefault(_*2).empty
你怎么看?
【问题讨论】:
-
我猜实例上的
empty方法是来自 pre-canBuildFrom 时代的产物。
标签: scala collections methods language-design