No se pueden reutilizar los parameters de la function

Estoy tratando de reutilizar los parameters de la function algo como esto

fun test(i: Int) { i += 5 } 

pero como se señala en esta distinción

Los parameters de function son val no var

En Kotlin, los arguments de la function se tratan como val . Eso significa que tendrá que hacer algo dentro de su function para "modificar" su reference.

Su solución funcionará, pero creo que es una mala práctica seguir las variables. Conduce a confusión y no cubre exactamente la intención de que entiendas que el efecto es local para la function.

Me gustaría ir con algo como esto:

 fun test(i: Int) { var i2 = i i2 += 3 // etc... } 

la única solución que encontré es usar sombreado de nombres, es decir, algo así

 fun test(i: Int) { var i = i i += 5 } 

No estoy seguro si es la mejor solución porque no se siente bien, incluso IntelliJ IDEA me lo advierte.

Esperaba algo mágico como

 fun test(var i: Int) { i += 5 } 

pero, desafortunadamente, esto ni siquiera se comporta.

  • ¿Lee el valor de la anotación de la function de Kotlin usando la reflexión?
  • Vista de Android get el contenido original "Ajustar contenido" de mi vista
  • Cómo hacer PATCH correctamente en lenguajes fuertemente tipados basados ​​en Spring - example
  • Android con Kotlin - Cómo usar HttpUrlConnection
  • Kotlin anula el set de miembros y obtén
  • ¿Cómo usar MapBuilder en kotlin y agregar todos los valores?
  • ¿Por qué el código de byte de Kotlin hace reference a java.util.function.BiConsumer?
  • Evento táctil de interceptación y networkingirigirlo en function del estado del evento de movimiento