Article image
Eduardo Lima
Eduardo Lima23/11/2023 01:28
Compartilhe

'if' must have both main and 'else' branches if used as an expression

    Há duas formas de utilizar expressões condicionais em kotlin. Mas eu cai no erro mostrado no titulo, eu queria apenas atribuir o valor do resultado dentro de uma váriavel em uma condição simples apenas com if Ex:

    val resultado = if (condicao) {
      // código a ser executado se a condição for verdadeira
      valorSeVerdadeiro
    }
    

    Mas dessa forma no Kotlin não é possível, para ser atribuida a uma váriavel tem que haver o `else` e o código ficaria dessa forma.

    val resultado = if (condicao) {
      // código a ser executado se a condição for verdadeira
      valorSeVerdadeiro
    } else Unit
    

    Em Kotlin para poder fazer uma condicional simples, não podemos atribuir o valor a uma váriavel diretamente, o código aceito seria +/- assim:

    val numero = 42
    
    if (numero % 2 == 0) {
      println("O número é par.")
    }
    

    Para fazer uma atribuição a uma variável o código seria assim:

    val numero = 10
    lateinit var teste: String
    if (numero % 2 == 0) {
      teste = "O número é par."
    }
    
    println(teste)
    

    Primeiro teria que inicializar a váriavel sem uma atribuição.

    Compartilhe
    Comentários (0)