golang关于自定义类型实现error接口的一个疑问,刚开始学习go语言有点不太明白
1. 运行环境
golang版本:go version go1.16.2 windows/amd64
3). 当前系统
Windows 10
2. 问题描述?
我在下面代码中中定义了MyFloat自定义类型,定义了类型值方法Error,实现了go中的error接口,但是在使用中有点疑问,为何MyFloat(3.2)可以直接调用Error方法,不是应该MyFloat(3.2).Error()调用一下吗
package main
import (
"fmt"
)
type MyFloat float64
func (m MyFloat) Error() string {
return fmt.Sprintf("Called")
}
func main() {
a := MyFloat(3.2)
fmt.Println(a) // 此时输出Called而不是3.2,但是我并没有打印a.Error(),Error()是怎么调用的呢?
}
推荐文章: