Почему выражение приращения символов в kotlin не работает с первой попытки? - PullRequest
0 голосов
/ 22 июня 2019

Я запутался в результате кода ниже.

fun main() {
    var vocal = 'A'
    println("Vocal " + vocal++)
    println("Vocal " + vocal++)
    println("Vocal " + vocal++)
    println("Vocal " + vocal--)
    println("Vocal " + vocal--)
    println("Vocal " + vocal--)
    println("Vocal " + vocal--)
}

Результат:

Vocal A
Vocal B
Vocal C
Vocal D
Vocal C
Vocal B
Vocal A

В строке 3 (вокал ++) я ожидал, что результатом будет «B», но вместо этого будет «A». Почему это не приращение?

1 Ответ

4 голосов
/ 22 июня 2019

Когда вы ставите ++ или -- после имени переменной, оно называется postincrement или postdecrement и означает, что возвращаемое значение является старым. Вместо этого, чтобы получить новое значение, вам нужно выполнить предварительное или предварительное добавление, поэтому сделайте ++vocal и --vocal вместо vocal++ и vocal--.

...