這個問題在這里已經有了答案: 未命名引數在 Go 中是一回事嗎? (3 個回答) 7 小時前關閉。
編碼
package main
import "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"
}
uj5u.com熱心網友回復:
接收器本身是可選的。如果該方法不使用接收器,則可以省略它。宣告:
func (unimplementedGreeterServer) SayHello() string {
return "hello"
}
簡單地定義一個unimplementedGreeterServer不使用接收器的方法。它是為值接收者定義的,因此它是為unimplementedGreeterServer和定義的*unimplementedGreeterServer。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/362124.html
標籤:走
