```go
package main
import (
"fmt"
)
type jiekou interface {
fangfa()string
}
type leixing struct {
a string
}
func (e *leixing) fangfa() string {
e.a="222"
return e.a
}
func run() jiekou {
return &leixing{
"111",
}
}
func main() {
fmt.Println(run())
}
```
请问输出结果为什么不是
222
而是
111
**********************************************
我是模仿下面这个程序写的,
```go
package main
import (
"fmt"
"time"
)
type MyError struct {
When time.Time
What string
}
func (e *MyError) Error() string {
return fmt.Sprintf("at %v, %s",
e.When, e.What)
}
func run() error {
return &MyError{
time.Now(),
"it didn't work",
}
}
func main() {
if err := run(); err != nil {
fmt.Println(err)
}
}
```
谢谢了,现在知道 ,只要是函数返回值类型是 error,和 Strings 类型的话,go就回自动调用它里面的方法了,请问,还有什么接口是会自动调用里面的方法吗?
#5
更多评论