接口
# 接口
接口描述行为,具体类型只要具有所需方法就会隐式实现接口。接口应由使用者按最小需求定义。
type Checker interface {
Check(ctx context.Context, target string) error
}
func Verify(ctx context.Context, checker Checker, target string) error {
return checker.Check(ctx, target)
}
1
2
3
4
5
6
7
2
3
4
5
6
7
类型断言使用 value, ok := input.(Type),类型 switch 适合处理有限类型集合。接口值包含动态类型和动态值,装入值为 nil 的具体指针后,接口本身不等于 nil,因此返回接口时不要返回类型化 nil。