what's naming convention scala enumeration type? example, in below code:
object eventtype extends enumeration { type eventtype = value val registered = value("registered") val started = value("started") } /** * event fires under specific life cycle * * @param eventtype [[eventtype.eventtype]] */ case class event(eventtype: eventtype.eventtype)
the above code follows same style described in scala doc. question here can see name of "eventtype.eventtype" quite redundant , quite strange when compared enum definitions in other languages java or c#.
so i'm wondering if there recommended naming style improve readability?
thanks in advance.
to shorten can use import underscore import object eventtype
. instead of import eventtype
use import eventtype._
. here example:
scala> object eventtype extends enumeration { | type eventtype = value | | val registered = value("registered") | val started = value("started") | } defined object eventtype scala> object test { | import eventtype._ | | case class event(eventtype: eventtype) | } defined object test
things might seem confusing because eventtype
name of object , eventtype.eventtype
type of enum. if use way:
eventtype.registered
then in case it's name of object, not type. on contrary, here:
case class event(eventtype: eventtype)
it's name of type, i.e. 1 defined type eventtype
.
if want avoid confusion can give different name type:
scala> object events extends enumeration { | type eventtype = value | val registered = value("registered") | val started = value("started") | } defined object events scala> object test { | import events._ | case class event(eventtype: eventtype) | val = event(registered) | } defined object test
Comments
Post a Comment