Оба существует, например, здесь:Почему некоторые классы классов имеют «пустой» метод экземпляра дополнительно к методу класса?
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[Int, Int](1->2, 21->42).withDefault(_*2).empty
Что вы думаете?
Я думаю, что метод 'empty' на экземплярах является артефактом из pre-canBuildFrom-эпохи. – Landei