接口
Go接口定义了方法后,其它类型只要实现了这些方法就是实现了接口。
type Person interface {
speak()
}
type Student struct {
}
type Worker struct {
}
func (student Student) speak(){
println("I am student")
}
func (worker Worker) speak(){
println("I am worker")
}
func main() {
var person Person
person=Worker{}
person.speak()//I am worker
person=Student{}
person.speak()//I am student
}
错误
错误是Go的内置接口,其定义如下:
type error interface {
Error() string
}
对于简单的错误,我们可以使用内置的errors.New生成一个errorString,对于复杂的错误,我们可以新建一个结构体实现error接口。
func divide(varDividee int, varDivider int) (int,error) {
if varDivider == 0 {
return 0,errors.New("the divider is zero")
} else {
return varDividee / varDivider, nil
}
}
func main(){
result,err:=divide(10,0)
if err!=nil{
fmt.Println(err)
}else{
fmt.Printf("result=%d\n",result)
}
}
有疑问加站长微信联系(非本文作者)