為了清楚起見,刪除了大部分代碼以更多地關注問題。我有一個使用以下代碼go-micro調用的服務器文件:main.gopackage mainimport ( "fmt" "strings" "github.com/micro/go-micro" "github.com/micro/go-micro/server" proto "mypkg/proto")const serviceName = "SRV"func main() { service := micro.NewService( micro.Name(strings.ToLower(serviceName)), micro.Server( server.NewServer( server.Name(strings.ToLower(serviceName)) ), ), ) service.Init() if err := proto.RegisterSRVServiceHandler(service.Server(), new(SRVService)); err != nil { panic(err) } if err := service.Run(); err != nil { panic(err) }}SRVService在另一個名為srv_service.go(具有相同包名)的文件中,我不知道如何導入它:package mainimport ( "context" proto "mypkg/proto")type SRVService struct{}func (g *SRVService) AddUser(ctx context.Context, req *proto.AddUserRequest, rsp *proto.AddUserResponse) error { rsp.UserId = "12312331231" return nil}我應該如何SRVService訪問main.go?
1 回答

慕村225694
TA貢獻1880條經驗 獲得超4個贊
如果它們位于同一文件夾中,則它們是同一包的一部分(它們的包聲明必須反映這一點)。如果它們是同一包的一部分,則無需導入任何內容。您可以引用包中的所有標識符(導出或未導出)。
不過這個main
包很特別。如果您的main
包由多個文件組成,則必須在運行或構建應用程序時列出所有文件,例如:
go run srv_service.go main.go
- 1 回答
- 0 關注
- 134 瀏覽
添加回答
舉報
0/150
提交
取消