camachojua / diplomado-ia

Repositorio de discusión para el diplomado de inteligencia artificial
GNU Lesser General Public License v2.1
15 stars 18 forks source link

Error al ejecutar codigo ejemplo de clase #3

Closed jmc-ops closed 4 weeks ago

jmc-ops commented 1 month ago

Hola. A mi se me presento el siguiente problema al tratar de ejecutar el siguiente codigo desde VSCode que tengo conectado con WSL . Nota: No tuve ningun problema en la instalación de go y linux

Hay que hacer algo adicional para que corra el codigo ?

Screenshot 2024-08-16 172637

package main

import "fmt"

func val1() bool { package main

import "fmt"

func val1() bool { fmt.Println("val1 gets called") return true } func val2() bool { fmt.Println("val2 gets called") return false } func main() { if val1() && val2() { fmt.Println("Shouldn't print") } fmt.Println("Testing for the second time") if val2() && val1() { fmt.Println("Shouldn't print") } if val1() || val2() { fmt.Println("The boolean expression is true") } if val2() || val1() { fmt.Println("The boolean expression is true") } }fmt.Println("val1 gets called") return true } func val2() bool { fmt.Println("val2 gets called") return false } func main() { if val1() && val2() { fmt.Println("Shouldn't print") } fmt.Println("Testing for the second time") if val2() && val1() { fmt.Println("Shouldn't print") } if val1() || val2() { fmt.Println("The boolean expression is true") } if val2() || val1() { fmt.Println("The boolean expression is true") } }

camachojua commented 1 month ago

Hola @jmc-ops ¿Podrías compartir el contenido /home/jmcarpio/go/bin/dlv ? El error dice que falta un archivo llamado go.mod

¿Ejecutaste el comando go mod init ?

ivanjpg commented 1 month ago

@jmc-ops puedes insertar bloques de código dentro de los issues en Github, en el editor tienes un iconito así: <>. Con eso es más fácil seguir tu código. También tienes repetidos demasiados pedazos de código, aguas al pegarlo.

Para visualizar cómo veremos los demás tu mensaje, da click en Preview.

camachojua commented 1 month ago

@jmc-ops Otra cuestión, la función main está declarada dos veces en el código que pegaste

jmc-ops commented 1 month ago

Les comparto lo que visualizo en la consola Screenshot 2024-08-16 1742

ivanjpg commented 1 month ago

Te completo por acá el ejemplo con el bloque de código correcto:

package main

import "fmt"

func val1() bool {
    fmt.Println("val1 gets called")
    return true
}

func val2() bool {
    fmt.Println("val2 gets called")
    return false
}

func main() {
    if val1() && val2() {
        fmt.Println("Shouldn't print")
    }

    fmt.Println("Testing for the second time")

    if val2() && val1() {
        fmt.Println("Shouldn't print")
    }

    if val1() || val2() {
        fmt.Println("The boolean expression is true")
    }

    if val2() || val1() {
        fmt.Println("The boolean expression is true")
    }
}

Tienes dos opciones para correrlo, la primera es directamente:

La segunda es usar el toolchain de go para construirlo a manera de módulo. Para ello ejecutas

¡Suerte! :four_leaf_clover:

ivanjpg commented 1 month ago

Les comparto lo que visualizo en la consola Screenshot 2024-08-16 1742

go mod init no es una instrucción de go, es un comando para ejecutar en una terminal. Además, trata de no usar espacios en los nombres de archivos.

camachojua commented 1 month ago

@jmc-ops Es importante que dentro de la carpeta donde está el archivo package main.go 1 tengas un archivo llamado go.mod

Edit: Si te sirve este podría ser el contenido del archivo:

module nombre

go 1.22.6

Donde nombre sería el nombre de la carpeta donde tienes el código, por ejemplo

FelipeAlvarezZuloaga commented 1 month ago

en su momento a mi me sirvió crear un archivo .txt, en el directorio donde voy a poner mis archivos, y luego le cambié el nombre a go.mod con el contenido siguiente:

module nombre_del_directorio

go 1.22.4

camachojua commented 1 month ago

@jmc-ops ¿Pudiste ejecutar el código?

camachojua commented 4 weeks ago

Se cierra el issue por falta de respuesta del interesado