上一页 1 ··· 31 32 33 34 35 36 37 38 39 ··· 53 下一页
摘要: 示例:使用接口进行数据的排序 排序是常见的算法之一,也是常见的面试题之一,程序员对各种排序算法也是津津乐道。 实际使用中,语言的类库会为我们提供健壮、高性能的排序算法库,开发者在了解排序算法基本原理的基础上,应该避免 “造轮子”,直接使用已有的排序算法库,以缩短开发周期,提高开发效率。 Go 语言中 阅读全文
posted @ 2022-06-04 16:57 左扬 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 示例:便于扩展输出方式的日志系统 日志可以用于查看和分析应用程序的运行状态。日志一般可以支持输出多种形式,如命令行、文件、网络等。 1、日志对外接口 本例中定义一个日志写入器接口(LogWriter),要求写入设备必须遵守这个接口协议才能被日志器(Logger)注册。日志器有一个写入器的注册方法(L 阅读全文
posted @ 2022-06-04 00:58 左扬 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 理解类型与接口的关系 类型和接口之间有一对多和多对一的关系,下面将列举出这些常见的概念,以方便理解接口与类型在复杂环境下的实现关系。 一、一个类型可以实现多个接口 一个类型可以同时实现多个接口,而接口间彼此独立,不知道对方的实现。 网络上的两个程序通过一个双向的通信连接实现数据的交换,连接的一端称为 阅读全文
posted @ 2022-05-31 18:47 左扬 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 实现接口的条件 接口定义后,需要实现接口,调用方才能正确编译通过并使用接口。接口的实现需要遵循两条规则才能让接口可用。 一、接口被实现的条件一:接口的方法与实现接口的类型方法格式一致 在类型中添加与接口签名一致的方法就可以实现该方法。签名包括方法中的名称、参数列表、返回参数列表。也就是说,只要实现接 阅读全文
posted @ 2022-05-31 17:06 左扬 阅读(327) 评论(0) 推荐(0) 编辑
摘要: 接口(inteface) 接口本身是调用方和实现方均需要遵守的一种协议,大家按照统一的方法命名参数类型和数量来协调逻辑处理的过程。 Go 语言中使用组合实现对象特性的描述。对象的内部使用结构体内嵌组合对象应该具有的特性,对外通过接口暴露能使用的特性。 Go 语言的接口设计是非侵入式的,接口编写无须知 阅读全文
posted @ 2022-05-31 00:02 左扬 阅读(291) 评论(0) 推荐(0) 编辑
摘要: 示例:使用匿名结构体分离 JSON 数据 手机拥有屏幕、电池、指纹识别等信息,将这些信息填充为 JSON 格式的数据。如果需要选择性地分离 JSON 中的数据则较为麻烦。Go 语言中的匿名结构体可以方便地完成这个操作。 代码1-1 JSON 数据分离(具体文件:.../splitejson.go) 阅读全文
posted @ 2022-05-30 23:35 左扬 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 类型内嵌和结构体内嵌 结构体允许其他成员字段在声明时没有字段名而只有类型,这种形式的字段被称为类型内嵌或匿名字段。 类型内嵌的写法如下: type Data struct{ int float32 bool } ins := &Data{ int: 10, float32: 3.14, bool: 阅读全文
posted @ 2022-05-30 23:11 左扬 阅读(445) 评论(0) 推荐(0) 编辑
摘要: 示例:使用事件系统实现事件的响应和处理 Go 语言可以将类型的方法与普通函数视为一个概念,从而简化方法和函数混合作为回调类型时的复杂性。这个特性和 C# 中的代理(delegate)类似,调用者无须关心谁来支持调用,系统会自动处理是否调用普通函数或类型的方法。 本节中,首先将用简单的例子了解 Go 阅读全文
posted @ 2022-05-30 18:48 左扬 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 为类型添加方法 Go 语言可以对任何类型添加方法。给一种类型添加方法就像给结构体添加方法一样,因为结构体也是一种类型。 一、为基本类型添加方法 在 Go 语言中,使用 type 关键字可以定义出新的自定义类型。之后就可以为自定义类型添加各种方法。我们习惯于使用面向过程的方式判断一个值是否为0,例如: 阅读全文
posted @ 2022-05-30 15:59 左扬 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 示例:二维矢量模拟玩家移动 在游戏中,一般使用二维矢量保存玩家的位置。使用矢量运算可以计算出玩家移动的位置。本例子中,首先实现二维矢量对象,接着构造玩家对象,最后使用矢量对象和玩家对象共同模拟玩家移动的过程。 1、实现二维矢量结构 矢量是数学中的概念,二维矢量拥有两个方向的信息,同时可以进行加、减、 阅读全文
posted @ 2022-05-30 15:31 左扬 阅读(143) 评论(0) 推荐(0) 编辑
上一页 1 ··· 31 32 33 34 35 36 37 38 39 ··· 53 下一页
levels of contents