go 接口interface
接口interface
go 中以关键字interface代表接口interface 可以用于多态, 还可以接受任意数据类型, 类似void
用例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | package main import ( "fmt" ) func main() { var q, w, e interface {} // 空接口 n2 := []string{ "haha" , "xixi" } q = n2 fmt.Printf( "this is n2: %v \n" , q) n3 := 10 w = n3 fmt.Printf( "this is n3: %d \n" , w) n4 := "dd" e = n4 fmt.Printf( "this is n4: %s \n" , e) // 判断interface 代表的数据的类型 kvalue, ok := e.(string) if !ok { fmt.Print( "k 不是int" ) } else { fmt.Printf( "value: %v" , kvalue) } // 最常用的场景: 把interface 当成一个函数的参数,使用switch来判断用户输入的不同数据类型 // 根据不同类型,做出不同逻辑处理 // 创建三个接口类型的切片 array := make([] interface {}, 3) array[0] = 10 array[1] = "hello" array[2] = true for _, value := range array { switch v := value.( type ) { case string: fmt.Print( " IS string: " , v) case int: fmt.Print( " is int: " , v) case bool: fmt.Print( " is bool: " , v) } } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
2018-09-13 Python基本数据类型