Ответ
var i = 0
i++
Инкремент (i++) включает:
- Чтение текущего значения переменной (
0) - Запись нового значения (
1) - Возврат старого значения (постфиксная форма)
Для префиксной формы (++i):
- Чтение значения
- Инкремент
- Возврат нового значения
В Java/Kotlin это атомарная операция для примитивов. Для не-volatile полей класса возможны race condition'ы в многопоточной среде. Для thread-safe инкремента используйте AtomicInteger:
val atomicInt = AtomicInteger(0)
atomicInt.incrementAndGet()