ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 18.5 接口 (1)如何检测一个值`v`是否实现了接口`Stringer`: ``` if v, ok := v.(Stringer); ok { fmt.Printf("implements String(): %s\n", v.String()) } ``` (2)如何使用接口实现一个类型分类函数: ``` func classifier(items ...interface{}) { for i, x := range items { switch x.(type) { case bool: fmt.Printf("param #%d is a bool\n", i) case float64: fmt.Printf("param #%d is a float64\n", i) case int, int64: fmt.Printf("param #%d is an int\n", i) case nil: fmt.Printf("param #%d is nil\n", i) case string: fmt.Printf("param #%d is a string\n", i) default: fmt.Printf("param #%d’s type is unknown\n", i) } } } ```