Destructed declarations
If you create an instance of BlogEntry
and then get the autocompletion dialog and navigate through the available methods, you will notice nine methods; these methods start with a series of components: component1()
, component2()
,... component9()
. Each of these methods correspond to each of the fields defined by the type. Their return type will therefore match their respective field type. Here is the snippet for component6()
, corresponding to the url
field:
public final java.net.URI component6(); Code: 0: aload_0 1: getfield #51 // Field url:Ljava/net/URI; 4: areturn
The Scala developer reading this will most likely think of the Product class and pattern matching. Kotlin is not as powerful when it comes to pattern matching, but still gives you a flavor of it.
You might find it quite useful to break the object into a tuple of variables. Given the preceding instance of blogEntry
, we can actually write the following:
val (title, description, publishTime...