parámetro de function final o val o en Kotlin?

¿Por qué Kotlin eliminó el parámetro de function final o val, que es muy útil en Java?

fun say(val msg: String = "Hello World") { msg = "Hello To Me" // would give an error here since msg is val //or final ... ... ... } 

Los parameters de la function Kotlin son finales. No hay val o palabra key final porque esa es la opción pnetworkingeterminada (y no se puede cambiar).

Después de la compatibilidad con Kotlin M5.1 de los parameters mutables eliminados, en versiones anteriores que se pueden lograr usando

 fun foo(var x: Int) { x = 5 } 

De acuerdo con los desarrolladores de Kotlin, las principales razones para eliminar esta característica están a continuación:

  1. La razón principal es que esto era confuso: las personas tienden a pensar que esto significa pasar un parámetro por reference, que no admitimos (es costoso en time de ejecución).

  2. Otra fuente de confusión son los constructores primarios: "val" o "var" en una statement de constructor significa algo diferente de lo mismo si una statement de function (es decir, crea una propiedad).

  3. Además, todos sabemos que los parameters de mutación no son buenos, por lo que escribir "val" o "var" delante de un parámetro en una function, catch block for-loop ya no está permitido.

Resumen : todos los valores de los parameters son val ahora. Debes introducir una variable separada para reinicializar. Ejemplo –

 fun say(val msg: String) { var tempMsg = msg if(yourConditionSatisfy) { tempMsg = "Hello To Me" } } 
  • El valor de retorno de las funciones de Kotlin se guarda en firebase
  • Kotlin Coroutines el path correcto en Android
  • ¿Cómo comparar dos matrices en Kotlin?
  • Jackson's @JsonAppend con valor pnetworkingeterminado
  • Función Kotlin: Unidad requerida? Encontrado Int
  • Kotlin, problema de function de alto order
  • Diseño de consulta de database de Firebase
  • ¿Cómo uso un onItemLongClickListener en mi actividad en Android?
  • cómo escribir "->" eficiente en Android Studio
  • ¿Por qué no está funcionando kotlin en el estudio andriod con la installation del complemento kotlin?
  • Un equivalente de text para la imageView