上一页 1 ··· 38 39 40 41 42 43 44 45 46 ··· 59 下一页
摘要: 为类型添加方法 Go 语言可以对任何类型添加方法。给一种类型添加方法就像给结构体添加方法一样,因为结构体也是一种类型。 一、为基本类型添加方法 在 Go 语言中,使用 type 关键字可以定义出新的自定义类型。之后就可以为自定义类型添加各种方法。我们习惯于使用面向过程的方式判断一个值是否为0,例如: 阅读全文
posted @ 2022-05-30 15:59 左扬 阅读(202) 评论(0) 推荐(0)
摘要: 示例:二维矢量模拟玩家移动 在游戏中,一般使用二维矢量保存玩家的位置。使用矢量运算可以计算出玩家移动的位置。本例子中,首先实现二维矢量对象,接着构造玩家对象,最后使用矢量对象和玩家对象共同模拟玩家移动的过程。 1、实现二维矢量结构 矢量是数学中的概念,二维矢量拥有两个方向的信息,同时可以进行加、减、 阅读全文
posted @ 2022-05-30 15:31 左扬 阅读(194) 评论(0) 推荐(0)
摘要: 方法 Go 语言中的方法(Method)是一种作用于特定类型变量的函数。这种特定类型变量叫做接收器(Receiver)。 如果将特定类型理解为结构体或者"类"时,接收器的概念就类似于其他语言中的 this 或 self。 在 Go 语言中,接收器的类型可以是任何类型,不仅仅是结构体,任何类型都可以拥 阅读全文
posted @ 2022-05-30 12:01 左扬 阅读(509) 评论(0) 推荐(0)
摘要: 构造函数——结构体和类型的一系列初始化操作的函数封装 Go 语言的类型或结构体没有构造函数的功能。结构体的初始化过程可以使用函数封装实现。 提示:其他编程语言构造函数的一些常见功能及特性如下: 1、每个类可以添加构造函数,多个构造函数使用函数重载实现。 2、构造函数一般与类名同名,且没有返回值。 3 阅读全文
posted @ 2022-05-29 23:31 左扬 阅读(155) 评论(0) 推荐(0)
摘要: 初始化结构体的成员变量 结构体在实例化时可以直接对成员变量进行初始化。 初始化有两种形态: 1、字段 "键值对" 形式及多个值的列表形式。(键值对形式的初始化适合选择性填充字段较多的结构体) 2、多个值的列表形式适合填充字段较少的结构体。 一、使用“键值对”初始化结构体 结构体可以使用“键值对”(k 阅读全文
posted @ 2022-05-29 23:04 左扬 阅读(563) 评论(0) 推荐(0)
摘要: 定义结构体、实例化结构体 Go 语言通过自定义的方式形成新的类型,结构体是类型中带有成员的复合类型。Go 语言使用结构体和结构体成员来描述真实世界的实体和实体对应的各种属性。 Go 语言中的类型可以被实例中,使用 new 或 "&" 构造的类型实例的类型是类型的指针。 结构体成员是由一系列的成员变量 阅读全文
posted @ 2022-05-28 23:58 左扬 阅读(658) 评论(0) 推荐(0)
摘要: 宕机恢复(recover)——防止程序崩溃 无论是代码运行错误由 Runtime 层抛出的 panic 崩溃,还是主动触发的 panic 崩溃,都可以配合 defer 和 recover 实现错误捕捉和恢复,让代码在发生崩溃后允许继续运行。 提示: 在其他语言里,宕机往往以一场的形式存在,底层抛出一 阅读全文
posted @ 2022-05-28 23:12 左扬 阅读(630) 评论(0) 推荐(0)
摘要: 宕机(panic)——程序终止运行 一、手动触发宕机 Go 语言可以在程序中手动触发宕机,让程序崩溃,这样开发者可以及时地发现错误,同时减少可能的损失。 Go 语言程序在宕机时,会将堆栈和goroutine信息输出到控制台,所以宕机也可以方便地知晓发生错误的位置。 如何触发宕机呢? package 阅读全文
posted @ 2022-05-28 22:39 左扬 阅读(468) 评论(0) 推荐(0)
摘要: 在解析中使用自定义错误 使用 error.New 定义的错误字符串的错误类型是无法提供丰富的错误信息的。那么,如果需要携带错误信息返回,就需要借助自定义结构体实现错误接口。 下面代码将实现一个错误解析(ParseError),这种错误包含两个内容:文件名和行号。解析错误的结构还实现了 error 接 阅读全文
posted @ 2022-05-28 18:32 左扬 阅读(158) 评论(0) 推荐(0)
摘要: 处理运行时发生的错误 Go 语言的错误处理思想及设计包含以下特征: 一个可能造成错误的函数,需要返回值中翻译个错误接口(error)。如果调用是成功的,错误接口返回nil,否则返回错误。 在函数调用后需要检查错误,如果发生错误,进行必要的错误处理。 一、net包中的例子 net.Dial()是 Go 阅读全文
posted @ 2022-05-28 16:25 左扬 阅读(96) 评论(0) 推荐(0)
上一页 1 ··· 38 39 40 41 42 43 44 45 46 ··· 59 下一页