Divirtámonos un poco con el infijo.Un estudio de caso de aplicación simple… | Por Matt Robertson | Febrero de 2022
Recientemente estoy usando un RecyclerView que muestra el progreso de un plan de lectura en una vista cuasi-calendario, una semana a la vez.
Dado que cada elemento de RecyclerView representa una semana, la cantidad de elementos de RecyclerView (es decir, el número de semana) se calcula dividiendo la cantidad de días en el plan de lectura por 7. En mi codificación inicial, introduje un error que apareció en la prueba.
Si no lo ve de inmediato, el error es un error de división de enteros, que es muy fácil de archivar en Java y Kotlin. Java/Kotlin simplemente elimina el resto al dividir por un número entero, esencialmente haciendo una floor()
Entonces 9 dividido por 7 es igual a 1. Esto significa que si necesito mostrar 9 días, mis cálculos solo considerarán la primera semana. Eliminé efectivamente la semana pasada de la mitad de mis escenarios posibles. En cuanto al frustrante error de envío doble, para mí, esto es un poco más alto que olvidarse de incluir la etiqueta de Permisos de Internet en una nueva aplicación.
Mi solución inicialmente se veía así
Esto funciona, pero es bastante feo, y su intención puede no ser obvia a primera vista para los futuros desarrolladores que lo encuentren.
Esto parece una buena oportunidad. infix fun
En Kotlin, «usar infix
Las palabras clave también se pueden invocar usando notación infija (omitiendo el punto y los paréntesis). » Ver Documentación de Kotlin Más sobre funciones infijas.
Así que redondeé el elenco feo y infix fun
En el archivo MathUtils.kt.
Ahora mi función original es así
El resultado final es más legible y tengo una utilidad reutilizable infix fun
para uso futuro.
El uso excesivo puede ser tentador infix fun
Así que por favor Utilizar con precauciónSin embargo, cuando tenga una situación en la que necesite hacer esto, infix fun
Puede ser una gran adición a la caja de herramientas de Kotlin.