0
votes

4 Réponses :


1
votes

Je pense que c'est parce que DEC () est un opérateur et ne modifie pas la valeur sous-jacente. Par exemple, vous exécutez ce code, vous devriez voir que je ne change jamais, notez l'utilisation de VAL NON VAR, dans votre exemple idée doit vous donner un indice. Si vous enveloppez l'int dans une classe, vous pouvez voir comment fonctionne la fonction avec un récepteur. XXX


0 commentaires


2
votes

inc () et déc () Ne pas muté l'objet qu'ils sont invoqués. Au lieu de cela, ils renvoient une copie mutée de l'objet:

ne fonctionne pas: xxx

fonctionne: xxx


0 commentaires

2
votes

Auteur de cet article ici. Votre fonction de la fonction code> code> de votre code> ne renvoie rien, vous devez modifier le type à bloc: int. () -> int code> puis renvoie son Réponse:

class Ref(var v: Int) {
    fun dec() {
        v -= 1
    }
}

fun summer(block: Ref.() -> Unit): Int {
    val ref = Ref(5).apply(block)
    return ref.v
}

fun main(args: Array<String>) {
    val mint = summer {
        dec()
        dec()
    }
    println(mint)
} 


0 commentaires