Bom dia galera. Quero usar o set que o próprio Kotlin me fornece, mas gostaria de retornar um Boolean. Nesse caso, se eu quiser que o set tenha algum retorno, devo explicitamente criar o setX?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Bom dia galera. Quero usar o set que o próprio Kotlin me fornece, mas gostaria de retornar um Boolean. Nesse caso, se eu quiser que o set tenha algum retorno, devo explicitamente criar o setX?
Olá Olmir!
No Kotlin, quando você utiliza a propriedade set, você pode retornar um booleano dentro do bloco de código do set para indicar se a atribuição do valor foi bem-sucedida ou não. Não é necessário criar um método setX explicitamente.
Por exemplo, suponha que você tenha uma classe Pessoa com uma propriedade idade. Você pode definir o set da propriedade idade da seguinte forma:
var idade: Int = 0
set(value) {
if (value >= 0) {
field = value
return true
} else {
return false
}
}
Nesse exemplo, se o valor atribuído à propriedade idade for maior ou igual a zero, ele será atribuído à variável field (que é o valor real da propriedade) e o set retornará true. Caso contrário, o set retornará false.
Dessa forma, ao atribuir um valor à propriedade idade, você pode verificar se a atribuição foi bem-sucedida ou não. Por exemplo:
val pessoa = Pessoa()
val atribuicaoBemSucedida = pessoa.idade = 25
if (atribuicaoBemSucedida) {
println("Idade atribuída com sucesso!")
} else {
println("Idade inválida!")
}
Espero ter ajudado e bons estudos!