Use con para optimizar el código
在这里插入代码片
La siguiente es una lógica de configuración de IU común:
applicationWindow.title = "Just an example"
applicationWindow.position = FramePosition.AUTO
applicationWindow.content = createContent()
applicationWindow.show()
applicationWindow
Necesitamos llamar repetidamente, en este momento podemos with
optimizar para que el código sea más conciso y fácil de leer
with(applicationWindow) {
// this: ApplicationWindow
title = "Just an example"
position = FramePosition.AUTO
content = createContent()
show()
}
with(..){...}
Esencialmente, es una encapsulación de la función de extensión con el receptor.
fun <T, R> with(receiver: T, block: T.() -> R): R =
receiver.block()
Ya que es with
tan bueno, ¿por qué no usarlo más?
El código fuente en Kotlin está lleno de aplicaciones de funciones de extensión con receptores, como filtros
fun <T> Iterable<T>.filter(predicate: (T) -> Boolean): List<T>
al usarlo:
persons.filter {
it.firstName == name }
Aquí it
, persons
el atributo que puede ser un buen recordatorio para el desarrollador firstName
no es name
,
Si lo definimos como predicate: T.() -> Boolean
:
persons.filter {
firstName == name }
La legibilidad es it.firstName
tan buena.
El equilibrio es importante
La calidad clave del código que buscamos lograr no es la concisión, sino la
legibilidad.
Un código demasiado largo puede conducir fácilmente a una repetición innecesaria; un código demasiado simple implicará mucho contexto y aumentará el costo de comprensión. El llamado buen código requiere una compensación en legibilidad y concisión.
Use Kotlin de manera razonable
Kotlin proporciona funciones de sintaxis flexible y puede escribir código más conciso que Java. Pero también debemos prestar atención para evitar la "corrección excesiva" y perseguir ciegamente la concisión del código que afecta la legibilidad. Además, además de with
otras funciones de alcance, por ejemplo apply
, also
también tienen sus escenarios adecuados, aclara sus significados it
y this
aplícalos a los escenarios más adecuados para escribir código bonito.