Sndhy3478:
En Kotlin, que quería escribir una función, pero veo que la nueva forma de escribir con " val
" propiedad utilizando get()
. ¿Cuál es la diferencia entre el siguiente dos.
1) fun sample(): String {
return "text"
}
2) val sample: String
get() = "text"
ryfterek:
Como se ha señalado en los comentarios, hay ninguna diferencia importante entre los dos fragmentos. Sólo puedo señalar algunas diferencias menores:
- Fragmento # 1 será reconocida como una función declarada, mientras fragmento # 2 será una propiedad declarada. Esto podría hacer la diferencia se debe aplicar una lógica basada en la reflexión.
- Fragmento # 2 nunca podría aceptar un argumento y nunca podría devolver una respuesta de tipo diferente a la declarada
val
. Esto es debido a la naturaleza de laget()
abstracción. Fragmento # 1 podría ampliarse fácilmente para aceptar un argumento de entrada. - Fragmento # 2 podría tener IDE quejándose de un campo de respaldo que se genera por la propiedad de que no tiene impacto en la propiedad de
get()
. - En términos generales, Fragmento # 2 podría y probablemente debería reducirse a
val sample: String = "text"
.get()
declaración es redundante.