Quiero llamar a la función desde otro archivo en go lang, ¿alguien puede ayudar?
test1.go
package main
func main() {
demo()
}
test2.go
package main
import "fmt"
func main() {
}
func demo() {
fmt.Println("HI")
}
Como llamar demoen test2partir test1?

go fmt? ¿Como en la terminal o qué? ¿Cómo demuestra que le importa algo?Respuestas:
No puede tener más de uno
mainen su paquete.De manera más general, no puede tener más de una función con un nombre de pila en un paquete.
Quita el
mainintest2.goy compila la aplicación. Lademofunción será visible desdetest1.go.fuente
mainen test2.go pero no pude ejecutar test1.go usandogo run test1.gostill. Por qué ?go run test1.go test2.goGo Lang por defecto construye / ejecuta solo el archivo mencionado. Para vincular todos los archivos, debe especificar el nombre de todos los archivos mientras se ejecuta.
Ejecute cualquiera de los dos comandos siguientes:
Debería hacer algo similar, si quiere construirlos.
fuente
Yo buscaba lo mismo. Para responder a su pregunta " ¿Cómo llamar a la demostración en test2 desde test1? ", Esta es la forma en que lo hice. Ejecute este código con el
go run test1.gocomando. Cambie current_folder a la carpeta donde está test1.go.test1.go
lib \ test2.go
Coloque el archivo test2.go en la subcarpeta
libfuente
package lib; expected mainSi solo corres
go run test1.goy ese archivo tiene una referencia a una función en otro archivo dentro del mismo paquete, se producirá un error porque no le dijo a Go que ejecutara todo el paquete, le dijo que solo ejecutara ese archivo.Puede indicar que go se ejecute como un paquete completo agrupando los archivos como un paquete en la ejecución con comas de varias formas. Aquí hay algunos ejemplos (si su terminal está en el directorio de su paquete):
go run ./O
go run test1.go test2.goO
go run *.goPuede esperar el mismo comportamiento usando el comando de compilación, y después de ejecutar el ejecutable creado se ejecutará como un paquete agrupado, donde los archivos conocen las funciones de los demás, etc. Ejemplo:
go build ./O
go build test1.go test2.goO
go build *.goY luego, simplemente llamar al ejecutable desde la línea de comando le dará una salida similar a usar el comando de ejecución cuando ejecutó todos los archivos juntos como un paquete completo. Ex:
./test1O cualquiera que sea el nombre de su archivo ejecutable cuando se creó.
fuente