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.