Discusión

Error en los tests de Go: se envía un `int` a una función que espera `float64`

CA@carfox·2/7/2026OptimizaciónCódigoDuda

Estoy intentando resolver el ejercicio isInteger en Go, pero parece existir un error en la configuración de los casos de prueba.

El código original proporcionado por la plataforma es:

package main

func isInteger(value float64) bool {
    // Escribe tu solución aquí
    return false
}

Sin modificar la firma de la función, el evaluador muestra el siguiente error:

cannot use _p0 (type int) as type float64 in argument to isInteger

Esto indica que el código interno del evaluador está declarando el argumento _p0 como int, aunque la función proporcionada por el ejercicio requiere un float64.

El error ocurre antes de ejecutar la lógica de isInteger, ya que Go no convierte automáticamente una variable de tipo int a float64.

El evaluador parece estar generando algo equivalente a:

var _p0 int = 3
isInteger(_p0)

Pero, de acuerdo con la firma original, debería generar algo como:

var _p0 float64 = 3.0
isInteger(_p0)

Este ejercicio necesita admitir valores decimales, por ejemplo 3.14, para comprobar si un número tiene parte decimal. Por esa razón, cambiar el parámetro de la función a int tampoco sería una solución válida.

El problema no puede corregirse únicamente desde la implementación de isInteger, porque se encuentra en el tipo utilizado por los casos de prueba.

¿Podrían revisar la configuración de los argumentos generados para los tests de Go?

1respuestas
Respuestas

Gracias por tan detallada explicación @carfox

En unos 30 minutos cuando termine el batch de actualizaciones a subir, ya se puede resolver el ejercicio sin problemas.

Escribir un comentario

Debes iniciar sesión para publicar un comentario.