Implementar la función Floor Modulo en Kotlin

David Mbochi Njonge 8 octubre 2023
  1. Crear un nuevo proyecto de Kotlin
  2. Cree una función de módulo de piso personalizada para Int en Kotlin
  3. Crear una función de módulo de piso personalizado para Doble
  4. Crear una función de módulo de suelo personalizada para Flotante
  5. Conclusión
Implementar la función Floor Modulo en Kotlin

Cada lenguaje de programación tiene operadores que ayudan a realizar diferentes cálculos, incluidos operadores aritméticos, operadores de asignación, operadores de comparación y operadores lógicos.

Estos operadores nos ayudan a realizar operaciones aritméticas comunes, pero no siempre cumplen con nuestros requisitos. En tales situaciones, el desarrollador hace todo lo posible para crear un algoritmo que use estos operadores para cumplir con sus requisitos.

Estos algoritmos generalmente se abstraen utilizando un método; solo necesitamos invocar este método con los parámetros correctos para obtener nuestro resultado.

Por ejemplo, mod() es una función de extensión implementada por todos los tipos de Número en Kotlin para calcular el resto de la división del suelo de este número con otro número, pero solo acepta un argumento de tipo Double o Float.

En este tutorial, aprenderemos a crear una función personalizada para calcular el resto de la división del piso de este número con otro número utilizando cualquier argumento que cumpla con los requisitos del desarrollador.

Crear un nuevo proyecto de Kotlin

Abra IntelliJ IDEA y seleccione Archivo > Nuevo > Proyecto. En la ventana que se abre, ingrese un proyecto llamado floor-modulo, seleccione Kotlin en la sección Idioma y seleccione Intellij en la sección Build system.

Finalmente, presiona el botón Crear para generar el proyecto Kotlin.

Cree una función de módulo de piso personalizada para Int en Kotlin

Una vez que se haya generado el proyecto, cree un archivo llamado Main.kt en la carpeta src/main/kotlin y copie y pegue el siguiente código en el archivo.

infix fun Int.floorMod(other: Double) =
    ((this % other) + other) % other

fun main(){
    val intValue = 5
    println(intValue.floorMod(3.2))
}

En este código, hemos creado una función de extensión llamada floorMod(), una función del tipo de datos Int. Este método calcula el resto de la división del suelo de un valor Int con otro valor de tipo Doble.

Este es un ejemplo para mostrar cómo crear una implementación personalizada, lo que significa que el desarrollador puede usar cualquiera de las implementaciones de tipo Número como argumento de esta función.

Tenga en cuenta que la función debe definirse primero antes de usar la aplicación. Ejecute este código y asegúrese de que el resultado sea como se muestra a continuación.

1.7999999999999998

Crear una función de módulo de piso personalizado para Doble

infix fun Double.floorMod(other: Int) =
    ((this % other) + other) % other

fun main(){
    val intValue = 5
    println(3.2.floorMod(intValue));
}

En este código, hemos creado un método llamado floorMod(), una función del tipo de datos Int. Este método calcula el resto de la división del suelo de un valor Doble con otro valor de tipo Int.

Este ejemplo funciona de la misma manera que el ejemplo anterior, y si necesitamos pasar un argumento diferente a este método, debemos definir una función que acepte el argumento que queremos. Ejecute este código y asegúrese de que el resultado sea como se muestra a continuación.

3.1999999999999993

Crear una función de módulo de suelo personalizada para Flotante

infix fun Float.floorMod(other: Double) =
    ((this % other) + other) % other

fun main(){
    val floatValue = 5F
    println(floatValue.floorMod(3.2))

}

Por ahora, sabemos cómo crear una función personalizada para calcular el módulo de piso para cumplir con la especificación requerida. Este código crea una función de extensión llamada floorMod() y es una función del tipo de datos Float.

Este método calcula el resto de la división del suelo de un valor Flotante con otro valor de tipo Doble.

Como se mencionó en los ejemplos anteriores, el proceso de creación de una función de extensión para que Float acepte un argumento diferente. Ejecute este código y asegúrese de que el resultado sea como se muestra a continuación.

1.7999999999999998

Conclusión

En este tutorial, hemos aprendido cómo crear una función de extensión personalizada para ayudarnos a calcular el módulo de piso de dos números. Los temas que hemos cubierto incluyen el cálculo del módulo de suelo para los tipos de datos Int, Double y Float.

Tenga en cuenta que debemos usar el mismo enfoque para las implementaciones de Número restantes, como Largo, Corto y Byte.

David Mbochi Njonge avatar David Mbochi Njonge avatar

David is a back end developer with a major in computer science. He loves to solve problems using technology, learning new things, and making new friends. David is currently a technical writer who enjoys making hard concepts easier for other developers to understand and his work has been published on multiple sites.

LinkedIn GitHub