[Kotlin] ¿Esto o eso? Utilice el operador with razonablemente

Inserte la descripción de la imagen aquí

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()

applicationWindowNecesitamos llamar repetidamente, en este momento podemos withoptimizar 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 withtan 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, personsel atributo que puede ser un buen recordatorio para el desarrollador firstNameno es name,

Si lo definimos como predicate: T.() -> Boolean:

persons.filter {
    
     firstName == name }

La legibilidad es it.firstNametan 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 withotras funciones de alcance, por ejemplo apply, alsotambién tienen sus escenarios adecuados, aclara sus significados ity thisaplícalos a los escenarios más adecuados para escribir código bonito.

Supongo que te gusta

Origin blog.csdn.net/vitaviva/article/details/109144694
Recomendado
Clasificación