object Record extends Dynamic
Records encoded as HLists of their value types intersected with the
singleton types of their keys.
Record types may be written using a relatively concise syntax thanks to a trick
due to Denys Shabalin (@den_sh) and Eugene Burmako (@xeno_by). We use a
combination of selectDynamic and backticks to embed a type in a path which
appears to the compiler as stable,
type Xyz = Record.`'x -> Int, 'y -> String, 'z -> Boolean`.T
The use of singleton-typed Symbols as keys would make this type extremely
laborious to write out by hand.
There is also a mechanism for creating values of record types using Scala's named argument syntax. Values of the type just defined can be created as follows,
val xyz = Record(x = 23, y = "foo", z = true) xyz('y) // == "foo"
Linear Supertypes
Ordering
- Alphabetic
- By Inheritance
Inherited
- Record
- Dynamic
- AnyRef
- Any
- Hide All
- Show All
Visibility
- Public
- Protected
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- macro def applyDynamic(method: String)(rec: Any*): HList
- macro def applyDynamicNamed(method: String)(rec: Any*): HList
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- macro def selectDynamic(tpeSelector: String): Any
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()