摘要: 示例:使用空接口实现可以保存任意值的字典 空接口可以保存任何类型这个特性可以方便地用于容器的设计。 下面例子使用 map 和 interface{} 实现了一个字典。字典在其他语言中的功能和 map 类似,可以将任意类型的值做成键值对保存,然后进行找回,遍历操作。 代码1-1 实现字典(/dict/ 阅读全文
posted @ 2022-06-04 22:47 左扬 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 空接口类型(interface{})——能保存所有值的类型 空接口是接口类型的特殊形式,空接口没有任何方法,因此任何类型都无须实现空接口。 从实现的角度看,任何值都满足这个接口的需求。因此空接口类型可以保存任何值,也可以从空接口中取出原值。 提示: 空接口类型类似于 C# 或者 Java 语言中的 阅读全文
posted @ 2022-06-04 21:06 左扬 阅读(322) 评论(0) 推荐(0) 编辑
摘要: 在接口和类型间转换 Go 语言中使用的接口断言(type assertions)将接口转换成另外一个接口,也可以将接口转换为另外的类型。接口的转换在开发中非常常见,使用也非常频繁。 1、类型断言的格式 类型断言的基本格式如下: t := i.(T) i 代表接口变量。 T 代表转换的目标类型。 t 阅读全文
posted @ 2022-06-04 20:02 左扬 阅读(880) 评论(0) 推荐(0) 编辑
摘要: 接口的嵌套组合——将多个接口放在一个接口内 在 Go 语言中,不仅结构体与结构体之间可以嵌套,接口与接口之间也可以通过嵌套创造出新的接口。 接口与接口嵌套组合而成了新接口,只要接口的所有方法被实现,则这个接口中的所有嵌套接口的方法均可以被调用。 1、系统包中的接口嵌套组合 Go 语言中的 io 包中 阅读全文
posted @ 2022-06-04 19:53 左扬 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 示例:使用接口进行数据的排序 排序是常见的算法之一,也是常见的面试题之一,程序员对各种排序算法也是津津乐道。 实际使用中,语言的类库会为我们提供健壮、高性能的排序算法库,开发者在了解排序算法基本原理的基础上,应该避免 “造轮子”,直接使用已有的排序算法库,以缩短开发周期,提高开发效率。 Go 语言中 阅读全文
posted @ 2022-06-04 16:57 左扬 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 示例:便于扩展输出方式的日志系统 日志可以用于查看和分析应用程序的运行状态。日志一般可以支持输出多种形式,如命令行、文件、网络等。 1、日志对外接口 本例中定义一个日志写入器接口(LogWriter),要求写入设备必须遵守这个接口协议才能被日志器(Logger)注册。日志器有一个写入器的注册方法(L 阅读全文
posted @ 2022-06-04 00:58 左扬 阅读(246) 评论(0) 推荐(0) 编辑
levels of contents