Avatar ·

Cómo implementar correctamente el patrón Builder en Kotlin teniendo en cuenta los modismos del lenguaje

¡Hola a todos! Soy nuevo en Kotlin (vengo de Java) y estoy intentando implementar el patrón Builder para una clase con muchos parámetros. En Java solía hacer una clase interna estática Builder con métodos set... y build(). Pero en Kotlin veo que muchas cosas funcionan de manera diferente y mi enfoque de Java parece engorroso. Esto es lo que intento hacer: ```kotlin class User( val name: String, val age: Int?, val email: String?, val phone: String?, val address: String?, val isActive: Boolean ) ``` Quiero que solo name sea obligatorio, el resto de campos son opcionales. En Java escribiría un Builder con métodos como `setAge(age: Int): Builder`, pero en Kotlin esto se ve poco natural. He probado usar argumentos con nombre y valores por defecto, pero eso no resuelve el problema cuando necesito crear un objeto en varios pasos (por ejemplo, en una cadena de llamadas). También he oído sobre la función `apply {}`, pero no estoy seguro de cómo aplicarla correctamente. Indíquenme cómo escribir en Kotlin