Aplicaciones Android

Refactorice su código Kotlin con extensiones integradas

Hoy, en el trabajo, estoy arreglando errores en el código de Kotlin que escribí hace algún tiempo. A primera pinta, no hay carencia obvio:

fun getTrimmedPropId(propId: String): String? 
            if (!Utils.emptyOrNull(propId)) 
                val tokens = propId.split("/").toTypedArray()
                    .filter  it.isNotEmpty() 
                return tokens[tokens.size - 1]
            
            return null
        

Sin confiscación, rápidamente me di cuenta propId Se pasa como null Para la función thr, esto es obviamente incorrecto, porque esta función no permite títulos anulables propId.
Personalmente, estoy eficaz de que Kotlin nos obligue a expresar nuestras intenciones con claridad, y debemos resolver si esperaremos o no null distancia.

Finalmente, la decisión es posible:

fun getTrimmedPropId(propId: String?): String? 

Sin confiscación, como siempre hago, verifiqué el cuerpo de la función nuevamente para ver si se podía robar y simplificar, por lo que el código resultante se parecía más a Kotlin que el precursor:

fun getTrimmedPropId(propId: String?): String? 
  return propId
    	.orEmpty()
        .split("/")
        .lastOrNull  it.isNotEmpty() 

He usado algunos String con List Extienda la función para alcanzar esto, haciendo que el código sea más ágil y más posible de seguir.

Primero, pude eliminar el cheque vano if Mediante el uso de la comunicación en orEmpty () propId Esta es una función de extensión anulable String Si no, devuelve la cautiverio null De lo contrario, es una cautiverio vacía.Esto es en realidad conveniente cuando se intenta achicar la cantidad if Declaraciones en su código.

Finalmente, este tokens[tokens.size - 1] Es una dormitorio de código muy peligrosa, si tokens La matriz una vez pasó a estar vacía. Este código solo obtiene el postrero sujeto de la matriz y se puede reemplazar fácilmente con lastOrNull (), que es una función de extensión. Collection propósito. Esta variación usa una función lambda, que recupera la última cautiverio no vacía de la registro.

Vale la pena mencionar que nos hemos dirigido getTrimmedPropId() Función, estoy muy eficaz de ver que todas las pruebas pasan durante la refactorización.

Puntos secreto:

  • Explore los tipos más comunes de extensiones de Kotlin, como String, List, Int y muchos más.Hay muchos descubrimientos
  • Escriba sus propias extensiones para las operaciones que necesite realizar en varios lugares y comuníquelas a su equipo para que ellos igualmente puedan beneficiarse de ellas.
  • Incluso escriba pruebas unitarias para la dialéctica empresarial más pequeña. Cuando necesite refactorizar el código en el futuro, le agradecerá que lo haya escrito usted mismo.

LEER  Sea parte de una industria de la salud rentable

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba