package
0.0.0-20240429050328-3be44a187b12
Repository: https://github.com/robertwang/golang_study.git
Documentation: pkg.go.dev
# README
Go 每日一题
今日(2023-07-28)的题目如下
下面这段代码输出什么?为什么?
type People interface {
Speak(string) string
}
type Student struct{}
func (stu *Student) Speak(think string) (talk string) {
if think == "speak" {
talk = "speak"
} else {
talk = "hi"
}
return
}
func main() {
var peo People = Student{}
think := "speak"
fmt.Println(peo.Speak(think))
}
- A. speak
- B. compilation error
🔑 答案解析:
参考答案及解析:B。
编译错误 Student does not implement People (Speak method has pointer receiver)
,值类型 Student
没有实现接口的 Speak()
方法,而是指针类型 *Student
实现改该方法。
详细请参考这篇文章 https://seekload.net/2019/06/06/go-study-method.html