---
title: Kotlin
created: 2021-05-07
updated: 2021-05-07
type: summary
tags: [tech, reference]
external: https://github.com/wahyd4/knowledge/blob/master/categories/kotlin.md
---

# Kotlin

## Some tips

### Builder mode in kotlin

```kotlin
class Car(
  val model: String?,
  val color: String?,
  val type: String?) {

    data class Builder(
      var model: String? = null,
      var color: String = "pink",
      var type: String? = null) {

        fun model(model: String) = apply { this.model = model }
        fun color(color: String) = apply { this.color = color }
        fun type(type: String) = apply { this.type = type }
        fun build() = Car(model, color, type)
    }
}
//use
val car = Car.Builder()
  .model("Ford Focus")
  .color("Black")
  .type("Type")
  .build()
```
Based on [stackoverflow](https://stackoverflow.com/questions/36140791/how-to-implement-builder-pattern-in-kotlin)
