Можно ли в Scala определить MyAlias[A]
в качестве псевдонима для MyClass[String, A]
. Например, MyAlias[Int]
будет ссылаться на Map[String, Int]
.Псевдоним класса в scala
10
A
ответ
18
Отметьте, что Map
является trait
, а не class
.
Вы все еще можете псевдоним его с помощью ключевого слова type
:
type StringMap[A] = Map[String, A]
val myMap: StringMap[Int] = Map("a" -> 1)
Это может быть сделано в рамках определения class
, object
или trait
(и в рамках любого метода или выражения).
Иногда вам нужно, чтобы псевдоним был закрыт для области объявления, просто как удобство для вашего кода реализации. Если вы хотите, тип, который будет использоваться, как правило, Package Objects сгодится:
package object mypackage {
type StringMap[A] = Map[String, A]
}
Поскольку Map
является признаком (и связанный объект компаньон), а не класс, вы не сможете использовать его непосредственно для создания экземпляры:
val myMap = new StringMap[Int]
// error: trait Map is abstract; cannot be instantiated
Если псевдоним класса, хотя, вы можете использовать ключевое слово new
:
type StringHashMap[A] = HashMap[String, A]
val myMap = new StringHashMap[Int]
Смежные вопросы
- 1. Избегайте дублирования типа псевдоним в Scala класса и компаньона объекта
- 2. Typedef (псевдоним) общего класса
- 3. Псевдоним статического класса в XAML
- 4. псевдоним удаленного класса в воздухе
- 5. Псевдоним статического класса System.Configuration.ConfigurationManager;
- 6. Базовый метод класса псевдоним
- 7. Псевдоним типа Scala с сопутствующим объектом
- 8. Отражение класса класса Scala
- 9. Псевдоним класса с независимыми свойствами
- 10. Как использовать SCALA псевдоним типа (Int, String)
- 11. Как определить псевдоним типа с отражением Scala?
- 12. Псевдоним типа Scala, включая сопутствующий объект [beginner]
- 13. Получить псевдоним имени импортированного класса
- 14. Ruby - псевдоним для класса объекта
- 15. Sealed класса в Scala
- 16. Идентификатор класса в Scala
- 17. Псевдоним для имени класса в методе
- 18. Как псевдоним метода класса в модели рельсов?
- 19. Перегрузка класса case в Scala
- 20. Scala вектор в случае класса
- 21. ссылки прямого класса в Scala?
- 22. Тип API класса в Scala
- 23. Можете ли вы сделать псевдоним для другой переменной в scala?
- 24. Как вы объявляете псевдоним типа в конструкторе scala?
- 25. Scala вложенного параметризованного класса
- 26. Scala замена класса
- 27. Объявление класса Scala
- 28. Scala простого класса дизайн
- 29. Ошибка класса импорта Scala
- 30. GroupBy Scala другого класса
Спасибо, Карта была плохой пример, я имел в виду (случай) класс – iwalktheline