Estoy tratando de ejecutar un programa simple de estilo hola mundo que las importaciones una función de impresión de un paquete personalizado independiente Id, pues, no es capaz de encontrarlo a pesar teh correcta $GOPATH
etc siendo conjunto.
Lo que falta que hará teh archivo ser recogido?
etherk1ll@ubuntu:~/Development/GoWorkSpace/src/sonarparser$ echo $GOPATH
/home/etherk1ll/Development/GoWorkSpace/
etherk1ll@ubuntu:~/Development/GoWorkSpace/src/sonarparser$ pwd
/home/etherk1ll/Development/GoWorkSpace/src/sonarparser
etherk1ll@ubuntu:~/Development/GoWorkSpace/src/sonarparser$ ls
jsonparser.go main.go
etherk1ll@ubuntu:~/Development/GoWorkSpace/src/sonarparser$ go run main.go
main.go:5:2: cannot find package "sonarparser/jsonparser" in any of:
/usr/local/go/src/sonarparser/jsonparser (from $GOROOT)
/home/etherk1ll/Development/GoWorkSpace/src/sonarparser/jsonparser (from $GOPATH)
main.go
package main
import (
"fmt"
"jsonparser"
)
func main() {
fmt.Println("Hello world 1")
fmt.Println(jsonparser.HelloTwo)
}
jsonparser.go
package jsonparser
import "fmt"
func HelloTwo() {
fmt.Println("Hello world 2")
}
Debido a que jsonparser.go
y main.go
están en el mismo paquete, Go requiere esos archivos que tienen el mismo nombre del paquete. Y debido a que ha definido la función principal para la ejecución, el envase debe ser "principal".
Paso 1: Por lo que debe cambiar el nombre de jsonparser.go
paquete 's a main
.
// jsonparser.go
package main
import "fmt"
func HelloTwo() {
fmt.Println("Hello world 2")
}
Paso 2: Usted necesidad de actualizar main.go
el archivo para corregir la ruta de importación:
// main.go
package main
import (
"fmt"
)
func main() {
fmt.Println("Hello world 1")
HelloTwo()
}
Paso 3: A continuación, se ejecuta el siguiente comando (debe incluir todos los archivos necesarios en el comando)
go run main.go jsonparser.go