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

为什么 Go 接受这种方法定义语法?

为什么 Go 接受这种方法定义语法?

Go
幕布斯7119047 2022-10-17 10:02:21
编码package mainimport "fmt"type unimplementedGreeterServer struct {}func (unimplementedGreeterServer) SayHello() string {    return "hello"}func main() {    s := &unimplementedGreeterServer{}    ret := s.SayHello()    fmt.Println(ret)}结果hello问题:为什么 SayHello 方法没有 unimplementedGreeterServer 点或 unimplementedGreeterServer 接收器可以运行我认为权利将是func (s unimplementedGreeterServer) SayHello2() string {    return "hello"}func (s *unimplementedGreeterServer) SayHello3() string {    return "hello"}不是func (unimplementedGreeterServer) SayHello() string {    return "hello"}
查看完整描述

1 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

接收器本身是可选的。如果该方法不使用接收器,则可以省略它。声明:


func (unimplementedGreeterServer) SayHello() string {

    return "hello"

}

简单地定义一个unimplementedGreeterServer不使用接收器的方法。它是为值接收者定义的,所以它是为unimplementedGreeterServer和定义的*unimplementedGreeterServer。


查看完整回答
反对 回复 2022-10-17
  • 1 回答
  • 0 关注
  • 149 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号