为了账号安全,请及时绑定邮箱和手机立即绑定

Golang:接口内的结构?

Golang:接口内的结构?

Go
凤凰求蛊 2021-11-01 11:03:09
所以我有一个接口,UserService在包内调用service我有两个简单的结构来表示 HTTP 调用的主体和响应。我有另一个实现UserService接口的结构。我想放置这些结构,调用它们UserResponse并UserRequest在接口内部,以便其他服务可以使用它们进行 HTTP 调用。此外,请求和响应应该可用(struct UserReponse,不可用struct userResponse),以便代码的其他部分可以使用它们。我在调用的接口中定义了一个函数 GetUser(request UserRequest) UserResponse但是,每当我引用时,UserRequest我都必须使用service.UserRequest而不是service.UserService.UserRequest. 这很糟糕,因为我不希望与用户相关的对象进入服务命名空间。我希望每个与服务相关的数据都在其自己的界面、文件等下进行组织。不幸的是,如果我将其UserResponse放入UserService界面中,则会出现错误。所以我把它放在与 相同的级别UserService,这就是为什么它们显示为service.UserResponse. 我如何访问UserResponseas service.UserService.UserResponse?
查看完整描述

2 回答

?
临摹微笑

TA贡献1982条经验 获得超2个赞

Go 不是 Java;Go 甚至不是 C++。您应该将 Go 视为“带有接口的 C”。

特别是,您不能为所欲为,因为您不能在接口定义中嵌套结构定义。请注意,您可以在 structs 中嵌套结构体,但不能直接实例化嵌套结构体。

您可以做的最接近的事情是将每个逻辑对象组移动到其自己的包中。


查看完整回答
反对 回复 2021-11-01
  • 2 回答
  • 0 关注
  • 219 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信