1.基础

接口命名一般在最后加 er

package main

//计算
type calculationer interface {
work(i int, j int) int
}

//加法结构体
type add struct {
}

func (c add) work(i int, j int) int {
return i + j
}

//减法结构体
type sub struct {
i int
j int
}

func (s sub) work(i int, j int) int {
return i - j
}

func main() {
var calcu calculationer

add1 := add{}
calcu = add1
println(calcu.work(3, 5))

sub1 := sub{}
calcu = sub1
println(calcu.work(3, 5))
}

go 接口_bc

 

2.空接口

作为参数时,可以传递进任何类型参数

package main

import "fmt"

func f(i interface{}) {
fmt.Printf("type:%T\n", i)
}
func main() {
f(3)
f("abc")
}

go 接口_类型参数_02