Avatar ·

Como implementar corretamente o padrão Builder em Kotlin considerando as expressões idiomáticas da linguagem?

Olá a todos! Sou novo em Kotlin (migrando do Java) e estou tentando implementar o padrão Builder para uma classe com muitos parâmetros. Em Java, eu normalmente criava uma classe interna estática Builder com métodos set... e build(). Mas em Kotlin, vejo que muitas coisas funcionam de forma diferente, e minha abordagem Java parece verbosa. Aqui está o que estou tentando fazer: ```kotlin class User( val name: String, val age: Int?, val email: String?, val phone: String?, val address: String?, val isActive: Boolean ) ``` Quero que apenas name seja obrigatório, os outros campos são opcionais. Em Java, eu escreveria um Builder com métodos como `setAge(age: Int): Builder`, mas em Kotlin isso parece não natural. Tentei usar argumentos nomeados e valores padrão, mas isso não resolve o problema quando é necessário criar o objeto em várias etapas (por exemplo, em uma chain de chamadas). Também ouvi falar da função `apply {}`, mas não tenho certeza de como aplicá-la corretamente. Digam-me como escrever em Kotlin