如何在我的main.go中导入go接口包?

为了清楚起见,删除了大部分代码以更多地关注问题。我有一个使用以下代码go-micro调用的服务器文件:main.go


package main


import (

    "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 main


import (

    "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?


POPMUISE
浏览 113回答 1
1回答

慕村225694

如果它们位于同一文件夹中,则它们是同一包的一部分(它们的包声明必须反映这一点)。如果它们是同一包的一部分,则无需导入任何内容。您可以引用包中的所有标识符(导出或未导出)。不过这个main包很特别。如果您的main包由多个文件组成,则必须在运行或构建应用程序时列出所有文件,例如:go run srv_service.go main.go
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go