Я новичок в Scala, и сейчас я создаю свое первое перечисление (с классами case для переопределения toString
).Как создать собственное пространство имен в Scala?
package views.helper.button
abstract sealed class Size(identifier: Option[String])
{
def this(identifier: String) = this(Some(identifier))
override def toString: String = identifier match
{
case Some(identifier) => "btn-" + identifier
case _ => ""
}
case object Mini extends Size("mini")
case object Small extends Size("small")
case object Default extends Size(None)
case object Large extends Size("normal")
}
Исходя из фона Java, это была моя первая попытка. Доступ к объектам, вроде button.Size.Mini
, кажется мне очень естественным. Но похоже, что я не могу получить доступ к объектам внутреннего корпуса класса. Размещение их ниже класса Size
отлично работает, но приводит к запутанному пространству имен.
Почему? Как бы вы моделировали это поведение? Может ли это быть более элегантным с помощью объекта, простирающегося на Enumeration
(я понял, что toString
станет проблемой ..)?
Я видел 'object' используется для именования. Вы понимаете, что 'object' - это класс с созданным экземпляром singleton, rt ?. – anoopelias