Book Image

Programming Kotlin

Book Image

Programming Kotlin

Overview of this book

Quickly learn the fundamentals of the Kotlin language and see it in action on the web. Easy to follow and covering the full set of programming features, this book will get you fluent in Kotlin for Android.
Table of Contents (20 chapters)
Programming Kotlin
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Customer Feedback
Preface

Delegated properties


Kotlin enhances the concept of properties to promote code reuse and make the developer coding task easier. There are many repetitive code snippets you and I could write. Ideally, we should have the following functionality out-of-the-box:

  1. A property value should be computed lazily on its first ever access.

  2. Notify the listeners of a change to one of the values of properties. Have you ever coded in C#? If yes, I am sure the INotifyPropertyChange interface will come to mind.

  3. Use a map to store your fields rather than a materialized field.

Well, good news! Kotlin's delegate properties support all of these. We deal quite often with types for which we need an identifier:

    interface WithId { 
      val id: String 
    } 
 
    data class WithIdImpl(override val id: String) : WithId 
 
    class Record(id: String) : WithId by Record.identifier(id) { 
      companion object Record { 
        fun identifier(identifier: String) = WithIdImpl...