Go基础语法宝典注: append 函数会改变 slice 所引用的数组的内容,从而影响到引用同一数组的其它 slice 。 但当 slice 中没有剩余空间(即 (cap-len) == 0 )时,此时将动态分配新的数组空间。返回的 slice 数组指针将指向这个空间,而原数组的内容将保持不变;其它引用此数组的 slice 则不受影响。 从Go1.2开始 slice 支持了三个参数的 slice ,之前一直采用这种方式在 定义了一个struct:Box,含有三个长宽高字段和一个颜色属性 定义了一个slice:BoxList,含有Box 然后以上面的自定义类型为接收者定义了一些method Volume()定义了接收者为Box,返回Box的容量 SetColor(c Color),把Box的颜色改为c BiggestColor()定在在BoxList上面,返回list里面容量最大的颜色 PaintItBlack()把Box PaintItBlack()把BoxList里面所有Box的颜色全部变成黑色 String()定义在Color上面,返回Color的具体颜色(字符串格式) 上面的代码通过文字描述出来之后是不是很简单?一般解决问题都是通过问题的描述,去写相应的代码 实现。 指针作为receiver 现在让回过头来看看SetColor这个method,它的receiver是一个指向Box的指针,可以使用*Box。 定义SetColor的0 码力 | 47 页 | 1020.34 KB | 1 年前3
Go Web编程SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 3 1.Go环境配置 1.1. Go安装 1.2. GOPATH 与工作空间 1.3. Go 命令 1.4. Go开发工具 1.5. 小结 2.Go语言基础 2.1. 你好,Go 2.2. Go基础 2.3. 流程和函数 2.4. struct 2.5. 面向对象 2 o,可以通过命令直接安装Go: brew install go links links 目录 上一节: Go环境配置 下一节: GOPATH 与工作空间 11 1.2 GOPATH与工作空间 1.2 GOPATH与工作空间 GOPATH设置 GOPATH设置 go 命令依赖一个重要的环境变量:$GOPATH1 (注:这个不是Go安装目录。下面以笔者的工作目录为说明,请替换自己机器上的工作目录。) go run 编译并运行Go程序 以上这些工具还有很多参数没有一一介绍,用户可以使用go help 命令获取更详细的帮助信息。 links links 目录 上一节: GOPATH与工作空间 下一节: Go开发工具 17 1.4 Go开发工具 1.4 Go开发工具 本节我将介绍几个开发工具,它们都具有自动化提示,自动化fmt功能。因为它们都是跨平台的,所以安装步骤之类 的都是通用的。0 码力 | 295 页 | 5.91 MB | 1 年前3
Hello 算法 1.0.0b4 Golang版2.2. 时间复杂度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.3. 空间复杂度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.4. 小结 . . . 前置条件 您需要至少具备任一语言的编程基础,能够阅读和编写简单代码。 0.1.2. 内容结构 本书主要内容包括: ‧ 复杂度分析:数据结构和算法的评价维度,算法效率的评估方法。时间复杂度、空间复杂度的推算方 法、常见类型、示例等。 ‧ 数据结构:基本数据类型,数据结构的分类方法。数组、链表、栈、队列、散列表、树、堆、图等数据 结构的定义、优缺点、常用操作、常见类型、典型应用、实现方法等。 问题是明确的,包含清晰的输入和输出定义。 ‧ 具有可行性,能够在有限步骤、时间和内存空间下完成。 ‧ 各步骤都有确定的含义,相同的输入和运行条件下,输出始终相同。 1.2.2. 数据结构定义 「数据结构 Data Structure」是计算机中组织和存储数据的方式。为了提高数据存储和操作性能,数据结构 的设计目标包括: ‧ 空间占用尽量减少,节省计算机内存。 ‧ 数据操作尽可能快速,涵盖数据访问、添加、删除、更新等。0 码力 | 347 页 | 27.40 MB | 1 年前3
Hello 算法 1.1.0 Go版19 2.3 时间复杂度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.4 空间复杂度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 2.5 小结 . . . 前置条件 你需要至少具备任一语言的编程基础,能够阅读和编写简单代码。 0.1.2 内容结构 本书的主要内容如图 0‑1 所示。 ‧ 复杂度分析:数据结构和算法的评价维度与方法。时间复杂度和空间复杂度的推算方法、常见类型、示 例等。 ‧ 数据结构:基本数据类型和数据结构的分类方法。数组、链表、栈、队列、哈希表、树、堆、图等数据 结构的定义、优缺点、常用操作、常见类型、典型应用、实现方法等。 ‧ 问题是明确的,包含清晰的输入和输出定义。 ‧ 具有可行性,能够在有限步骤、时间和内存空间下完成。 ‧ 各步骤都有确定的含义,在相同的输入和运行条件下,输出始终相同。 1.2.2 数据结构定义 数据结构(data structure)是计算机中组织和存储数据的方式,具有以下设计目标。 ‧ 空间占用尽量少,以节省计算机内存。 第 1 章 初识算法 hello‑algo.com 140 码力 | 383 页 | 18.48 MB | 1 年前3
Hello 算法 1.0.0 Golang版19 2.3 时间复杂度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.4 空间复杂度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 2.5 小结 . . . 前置条件 你需要至少具备任一语言的编程基础,能够阅读和编写简单代码。 0.1.2 内容结构 本书的主要内容如图 0‑1 所示。 ‧ 复杂度分析:数据结构和算法的评价维度与方法。时间复杂度和空间复杂度的推算方法、常见类型、示 例等。 ‧ 数据结构:基本数据类型和数据结构的分类方法。数组、链表、栈、队列、哈希表、树、堆、图等数据 结构的定义、优缺点、常用操作、常见类型、典型应用、实现方法等。 ‧ 问题是明确的,包含清晰的输入和输出定义。 ‧ 具有可行性,能够在有限步骤、时间和内存空间下完成。 ‧ 各步骤都有确定的含义,在相同的输入和运行条件下,输出始终相同。 1.2.2 数据结构定义 「数据结构 data structure」是计算机中组织和存储数据的方式,具有以下设计目标。 ‧ 空间占用尽量少,以节省计算机内存。 第 1 章 初识算法 hello‑algo.com 140 码力 | 382 页 | 17.60 MB | 1 年前3
Hello 算法 1.0.0b5 Golang版18 2.3 时间复杂度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.4 空间复杂度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 2.5 小结 . . . � 前置条件 您需要至少具备任一语言的编程基础,能够阅读和编写简单代码。 0.1.2 内容结构 本书主要内容如图 0‑1 所示。 ‧ 复杂度分析:数据结构和算法的评价维度与方法。时间复杂度、空间复杂度的推算方法、常见类型、示 例等。 ‧ 数据结构:基本数据类型,数据结构的分类方法。数组、链表、栈、队列、哈希表、树、堆、图等数据 结构的定义、优缺点、常用操作、常见类型、典型应用、实现方法等。 ‧ 问题是明确的,包含清晰的输入和输出定义。 ‧ 具有可行性,能够在有限步骤、时间和内存空间下完成。 ‧ 各步骤都有确定的含义,相同的输入和运行条件下,输出始终相同。 1.2.2 数据结构定义 「数据结构 data structure」是计算机中组织和存储数据的方式,具有以下设计目标。 ‧ 空间占用尽量减少,节省计算机内存。 第 1 章 初识算法 hello‑algo.com 130 码力 | 379 页 | 30.70 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Go 版19 2.3 时间复杂度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.4 空间复杂度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 2.5 小结 . . . 前置条件 你需要至少具备任一语言的编程基础,能够阅读和编写简单代码。 0.1.2 内容结构 本书的主要内容如图 0‑1 所示。 ‧ 复杂度分析:数据结构和算法的评价维度与方法。时间复杂度和空间复杂度的推算方法、常见类型、示 例等。 ‧ 数据结构:基本数据类型和数据结构的分类方法。数组、链表、栈、队列、哈希表、树、堆、图等数据 结构的定义、优缺点、常用操作、常见类型、典型应用、实现方法等。 具有可行性,能够在有限步骤、时间和内存空间下完成。 ‧ 各步骤都有确定的含义,在相同的输入和运行条件下,输出始终相同。 1.2.2 数据结构定义 数据结构(data structure)是组织和存储数据的方式,涵盖数据内容、数据之间关系和数据操作方法,它具 有以下设计目标。 第 1 章 初识算法 www.hello‑algo.com 14 ‧ 空间占用尽量少,以节省计算机内存。 ‧0 码力 | 384 页 | 18.49 MB | 10 月前3
Golang 101(Go语言101 中文版) v1.21.a习到更多关于自定义类型的知 识。 零值 每种类型都有一个零值。一个类型的零值可以看作是此类型的默认值。 一个布尔类型的零值表示真假中的假。 数值类型的零值都是零(但是不同类型的零在内存中占用的空间可能不 同)。 一个字符串类型的零值是一个空字符串。 基本类型的字面量表示形式 一个值的字面形式称为一个字面量,它表示此值在代码中文字体现形式(和内 存中的表现形式相对应)。一个值可能会有很多种字面量形式。 值部分在内存中都占据一段连续 空间。 通过安全(第15章)或者非安全(第25章)指针,一个值的间接部分 被此值的直接部分所引用。 值部(第17章)这个术语并没有在Go白皮书中定义。它仅使用在《Go语言 101》这本书中,用来简化一些解释并帮助Go程序员更好地理解Go类型和值。 概念:值尺寸(value size) 一个值存储在内存中是要占据一定的空间的。此空间的大小称为此值的尺寸。 值尺寸是用字节数来衡量的。 对于字符串值的赋值,道理是一样的。所以对于官方标准编译器来说, 上一段的描述是100%正确的。 因为一个间接值部可能并不专属于任何一个值,所以在使用unsafe.Sizeof函 数计算一个值的尺寸的时候,此值的间接部分所占内存空间未被计算在内。 关于术语“引用类型”和“引用值” “引用”这个术语在Go社区中使用得有些混乱。很多Go程序员在Go编程中可能 由此产生了一些困惑。 一些文档或者网络文章,包括一些官方文档 ? ,把“引0 码力 | 821 页 | 956.82 KB | 1 年前3
Golang 101(Go语言101 中文版) v1.21.a更多关于自定义类型的知 识。 零值 每种类型都有一个零值。一个类型的零值可以看作是此类型的默认值。 一个布尔类型的零值表示真假中的假。 数值类型的零值都是零(但是不同类型的零在内存中占用的空间可能不 同)。 一个字符串类型的零值是一个空字符串。 基本类型的字面量表示形式 一个值的字面形式称为一个字面量,它表示此值在代码中文字体现形式(和内 存中的表现形式相对应)。一个值可能会有很多种字面量形式。 值部分在内存中都占据一段连续 空间。 通过安全(第15章)或者非安全(第25章)指针,一个值的间接部分被 此值的直接部分所引用。 值部(第17章)这个术语并没有在Go白皮书中定义。它仅使用在《Go语言 101》这本书中,用来简化一些解释并帮助Go程序员更好地理解Go类型和值。 概念:值尺寸(value size) 一个值存储在内存中是要占据一定的空间的。此空间的大小称为此值的尺寸。 值尺寸是用字节数来衡量的。 对于字符串值的赋值,道理是一样的。所以对于官方标准编译器来说,上一段 的描述是100%正确的。 因为一个间接值部可能并不专属于任何一个值,所以在使用unsafe.Sizeof函数 计算一个值的尺寸的时候,此值的间接部分所占内存空间未被计算在内。 关于术语“引用类型”和“引用值” “引用”这个术语在Go社区中使用得有些混乱。很多Go程序员在Go编程中可能 由此产生了一些困惑。 一些文档或者网络文章,包括一些官方文档 ,把“引0 码力 | 608 页 | 1.08 MB | 1 年前3
Golang 101(Go语言101 中文版) v1.21.a第6章:基本类型和它们的字面量表示 25 每种类型都有一个零值。一个类型的零值可以看作是此类型的默认值。 一个布尔类型的零值表示真假中的假。 数值类型的零值都是零(但是不同类型的零在内存中占用的空间可能不同)。 一个字符串类型的零值是一个空字符串。 基本类型的字面量表示形式 一个值的字面形式称为一个字面量,它表示此值在代码中文字体现形式(和内存中 的表现形式相对应)。一个值可能会有很多种字面量形式。 些值还可能有一个或多个间接部分。每个值部分在内存中都占据一段连续空间。 通 过安全(第15章)或者非安全(第25章)指针,一个值的间接部分被此值的直接部 分所引用。 值部(第17章)这个术语并没有在Go白皮书中定义。它仅使用在《Go语言101》这本 书中,用来简化一些解释并帮助Go程序员更好地理解Go类型和值。 概念:值尺寸(value size) 一个值存储在内存中是要占据一定的空间的。此空间的大小称为此值的尺寸。值尺 寸是用字节数来衡量的。 对于字符串值的赋值,道理是一样的。所以对于 官方标准编译器来说,上一段的描述是100%正确的。 因为一个间接值部可能并不专属于任何一个值,所以在使用unsafe.Sizeof函数计 算一个值的尺寸的时候,此值的间接部分所占内存空间未被计算在内。 关于术语“引用类型”和“引用值” “引用”这个术语在Go社区中使用得有些混乱。很多Go程序员在Go编程中可能由此 产生了一些困惑。 一些文档或者网络文章,包括一些官方文档 (https://golang0 码力 | 591 页 | 21.40 MB | 1 年前3
共 36 条
- 1
- 2
- 3
- 4













