estrutura de pastas:
- myproject
- resolver
- resolver.go
- main.go
go mod init github.com/kaleabbyh/foodrecipie
resolver.go:
package resolvers
import "fmt"
func resolverfunc(){
fmt.Println("resolvers are running")
}
principal.go:
package main
import (
"fmt"
"github.com/kaleabbyh/foodrecipie/resolvers"
)
func main(){
resolvers.resolverfunc()
fmt.Println("main is running")
}
Tento fazer igual aos detalhes acima mas me retorna
nenhum módulo obrigatório fornece o pacote "github.com/kaleabbyh/foodrecipie/resolvers"
Embora você tenha usado
package resolvers
, o nome do diretório desse pacote éresolver
, portanto, o caminho de importação desse pacote (independentemente do nome) não é,"github.com/kaleabbyh/foodrecipie/resolvers"
mas em vez disso"github.com/kaleabbyh/foodrecipie/resolver"
.Observe também que, para poder chamar funções em pacotes importados, essas funções precisam ser exportadas (ou seja, elas DEVEM começar com uma letra maiúscula). Em outras palavras;
resolvers.resolverfunc()
não vai funcionar (mesmo que você consiga resolver o problema de importação) porque nãoresolverfunc
é exportado (ou seja, começa com uma letra minúscula). Veja: https://go.dev/ref/spec#Exported_identifiers