Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Função deposita não funciona.

Já tentei criar a função de diversas formas mas ela simplismente da erro de "função deposita não existe". Segue código:

class Conta {
    var titular = ""
    var numero = 0
    var saldo = 0.0
}

fun main() {

    println("Bem-Vindo ao Bytebank")
    val contaGabriel = Conta()
    contaGabriel.titular = "Gabriel Sodré"
    println(contaGabriel.titular)
    val contaVitor = Conta()
    contaVitor.titular = "Vitor Dias"
    println(contaVitor.titular)


    println("Depositando na conta do Gabriel")
    deposita(contaGabriel, 50.0)

    fun deposita(conta: Conta, d: Double) {

        conta.saldo += d


    }


    fun testaCopiasEReferencias() {

        val numeroX = 10
        var numeroY = numeroX
        numeroY++

        val contaJoao = Conta()
        contaJoao.titular = "João"
        var contaMaria = Conta()
        contaMaria.titular = "Maria"

        println("Titular conta João: $contaJoao.titular")
        println("Titular conta Maria: $contaMaria.titular")

        println("numeroX $numeroX")
        println("numeroY " + numeroY)
    }

        for (i in 1..5) run {

            val titular: String = "Gabriel Sodré $i"
            val numeroConta: Int = 1000 + i;
            var saldo = i + 10.0;

        println("Titular: $titular");
        println("Número da conta: $numeroConta");
        println("Saldo: $saldo");
        println()

      when {
          saldo > 0.0 -> {
                println("Seu saldo é positivo")
            }
            saldo == 0.0 -> {
                println("Seu saldo é neutro")
            }
            else -> {
                println("Seu saldo é negativo")
            }
        }

        fun testaCondicoes(saldo: Double) {
            if (saldo > 0.0) {
                println("Seu saldo é positivo")
            } else if (saldo == 0.0) {
                println("Seu saldo é neutro")
            } else {
                println("Seu saldo é negativo")
            }
        }
    }
}


3 respostas
solução!

Oi Vitor

Para utilizar Nested functions em Kotlin você precisa declarar a func antes da utilização:

class Conta {
    var titular = ""
    var numero = 0
    var saldo = 0.0
}

fun main() {

    println("Bem-Vindo ao Bytebank")
    val contaGabriel = Conta()
    contaGabriel.titular = "Gabriel Sodré"
    println(contaGabriel.titular)
    val contaVitor = Conta()
    contaVitor.titular = "Vitor Dias"
    println(contaVitor.titular)

    fun deposita(conta: Conta, d: Double) {
        conta.saldo += d
    }

    println("Depositando na conta do Gabriel")
    deposita(contaGabriel, 50.0)

    fun testaCopiasEReferencias() {

        val numeroX = 10
        var numeroY = numeroX
        numeroY++

        val contaJoao = Conta()
        contaJoao.titular = "João"
        var contaMaria = Conta()
        contaMaria.titular = "Maria"

        println("Titular conta João: $contaJoao.titular")
        println("Titular conta Maria: $contaMaria.titular")

        println("numeroX $numeroX")
        println("numeroY " + numeroY)
    }

    for (i in 1..5) run {

        val titular: String = "Gabriel Sodré $i"
        val numeroConta: Int = 1000 + i;
        var saldo = i + 10.0;

        println("Titular: $titular");
        println("Número da conta: $numeroConta");
        println("Saldo: $saldo");
        println()

        when {
            saldo > 0.0 -> {
                println("Seu saldo é positivo")
            }
            saldo == 0.0 -> {
                println("Seu saldo é neutro")
            }
            else -> {
                println("Seu saldo é negativo")
            }
        }

        fun testaCondicoes(saldo: Double) {
            if (saldo > 0.0) {
                println("Seu saldo é positivo")
            } else if (saldo == 0.0) {
                println("Seu saldo é neutro")
            } else {
                println("Seu saldo é negativo")
            }
        }
    }
}

Como faço pra declarar a função antes?\

Oi Vitor

Declarando a função antes de usar:

fun deposita(conta: Conta, d: Double) {
        conta.saldo += d
    }

    println("Depositando na conta do Gabriel")
    deposita(contaGabriel, 50.0)

Como estava:

deposita(contaGabriel, 50.0)

    fun deposita(conta: Conta, d: Double) {

        conta.saldo += d


    }