Golang 101(Go语言101 中文版) v1.21.a
书中定义。它仅使用在《Go语言 101》这本书中,用来简化一些解释并帮助Go程序员更好地理解Go类型和值。 概念:值尺寸(value size) 一个值存储在内存中是要占据一定的空间的。此空间的大小称为此值的尺寸。 值尺寸是用字节数来衡量的。 在Go中,当我们谈及一个值的尺寸,如果没有 特殊说明,我们一般是指此值的直接部分的尺寸。 某个特定类别的所有类型 的值的尺寸都是一样的。因为这个原因,我们也常将一个值的尺寸说成是它的 的,因为此内存块可能已经 被重新分配给其它值使用了。 事实三:一个值的地址在程序运行中可能改变 详情请阅读内存块(第43章)一文(见链接所指一节的尾部)。 这里我们只 需要知道当一个协程的栈的大小改变时,开辟在此栈上的内存块需要移动,从 而相应的值的地址将改变。 事实四:一个值的生命范围可能并没有代码中看上去 的大 比如中下面这个例子,值t仍旧在使用中并不能保证被值t.y所引用的值仍在 的地址是非法和危险的!另一个危险的原因是 13 | // t的地址在执行下一行之前可能改变(见事实三)。 14 | // 另一个潜在的危险是:如果在此期间发生了一些 15 | // 操作导致协程堆栈大小改变的情况,则记录在addr 16 | // 中的地址将失效。 17 | ty2 := (*int16)(unsafe.Pointer(addr)) 18 | fmt.Println(*ty2)0 码力 | 821 页 | 956.82 KB | 1 年前3Golang 101(Go语言101 中文版) v1.21.a
书中定义。它仅使用在《Go语言 101》这本书中,用来简化一些解释并帮助Go程序员更好地理解Go类型和值。 概念:值尺寸(value size) 一个值存储在内存中是要占据一定的空间的。此空间的大小称为此值的尺寸。 值尺寸是用字节数来衡量的。 在Go中,当我们谈及一个值的尺寸,如果没有特 殊说明,我们一般是指此值的直接部分的尺寸。 某个特定类别的所有类型的值 的尺寸都是一样的。因为这个原因,我们也常将一个值的尺寸说成是它的类型 险的,因为此内存块可能已经 被重新分配给其它值使用了。 事实三:一个值的地址在程序运行中可能改变 详情请阅读内存块(第43章)一文(见链接所指一节的尾部)。 这里我们只需 要知道当一个协程的栈的大小改变时,开辟在此栈上的内存块需要移动,从而 相应的值的地址将改变。 事实四:一个值的生命范围可能并没有代码中看上去的大 比如中下面这个例子,值t仍旧在使用中并不能保证被值t.y所引用的值仍在被 使用。 // 的地址是非法和危险的!另一个危险的原因是 // t的地址在执行下一行之前可能改变(见事实三)。 // 另一个潜在的危险是:如果在此期间发生了一些 // 操作导致协程堆栈大小改变的情况,则记录在addr // 中的地址将失效。 ty2 := (*int16)(unsafe.Pointer(addr)) fmt.Println(*ty2) } 这样的b0 码力 | 608 页 | 1.08 MB | 1 年前3Golang 101(Go语言101 中文版) v1.21.a
书中定义。它仅使用在《Go语言101》这本 书中,用来简化一些解释并帮助Go程序员更好地理解Go类型和值。 概念:值尺寸(value size) 一个值存储在内存中是要占据一定的空间的。此空间的大小称为此值的尺寸。值尺 寸是用字节数来衡量的。 在Go中,当我们谈及一个值的尺寸,如果没有特殊说明, 我们一般是指此值的直接部分的尺寸。 某个特定类别的所有类型的值的尺寸都是一 样的。因为这个原因 的,因为此内存块可能已经被重 新分配给其它值使用了。 事实三:一个值的地址在程序运行中可能改变 详情请阅读内存块(第43章)一文(见链接所指一节的尾部)。 这里我们只需要知 道当一个协程的栈的大小改变时,开辟在此栈上的内存块需要移动,从而相应的值 的地址将改变。 事实四:一个值的生命范围可能并没有代码中看上去的大 比如中下面这个例子,值t仍旧在使用中并不能保证被值t.y所引用的值仍在被使 的地址是非法和危险的!另一个危险的原因是 13| // t的地址在执行下一行之前可能改变(见事实三)。 14| // 另一个潜在的危险是:如果在此期间发生了一些 15| // 操作导致协程堆栈大小改变的情况,则记录在addr 16| // 中的地址将失效。 17| ty2 := (*int16)(unsafe.Pointer(addr)) 18| fmt.Println(*ty2)0 码力 | 591 页 | 21.40 MB | 1 年前3Hello 算法 1.0.0b1 Golang版
你。本书是我对于该问题给出的答案,虽然不一定正确,但至 少代表一次积极的尝试。这本书虽然不足以让你直接拿到 Offer ,但会引导你探索数据结构与算法的“知识地 图”,带你了解不同“地雷”的形状大小和分布位置,让你掌握各种“排雷方法”。有了这些本领,相信你可以 更加得心应手地刷题与阅读文献,逐步搭建起完整的知识体系。 书内的代码配有可一键运行的源文件,托管在 github.com/krahets/hello‑algo 应用到日常生活中。接下来,我将介绍两个具体例子来佐证。 例一:拼积木。一套积木,除了有许多部件之外,还会附送详细的拼装说明书。我们按照说明书上一步步操作, 即可拼出复杂的积木模型。 如果从数据结构与算法的角度看,大大小小的「积木」就是数据结构,而「拼装说明书」上的一系列步骤就是 算法。 例二:查字典。在字典中,每个汉字都有一个对应的拼音,而字典是按照拼音的英文字母表顺序排列的。假设 需要在字典中查询任意一个拼音首字母为 数据结构与算法的关系 如果将「LEGO 乐高」类比到「数据结构与算法」,那么可以得到下表所示的对应关系。 数据结构与算法 LEGO 乐高 输入数据 未拼装的积木 数据结构 积木组织形式,包括形状、大小、连接方式等 算法 把积木拼成目标形态的一系列操作步骤 输出数据 积木模型 1. 引言 hello‑algo.com 11 � 约定俗成的简称 在实际讨论中,我们通常会将「数据结构与算法」直接简称为「算法」。例如,我们熟称的0 码力 | 190 页 | 14.71 MB | 1 年前3Hello 算法 1.0.0b2 Golang版
你。本书是我对于该问题给出的答案,虽然不一定正确,但至 少代表一次积极的尝试。这本书虽然不足以让你直接拿到 Offer ,但会引导你探索数据结构与算法的“知识地 图”,带你了解不同“地雷”的形状大小和分布位置,让你掌握各种“排雷方法”。有了这些本领,相信你可以 更加得心应手地刷题与阅读文献,逐步搭建起完整的知识体系。 书内的代码配有可一键运行的源文件,托管在 github.com/krahets/hello‑algo 应用到日常生活中。接下来,我将介绍两个具体例子来佐证。 例一:拼积木。一套积木,除了有许多部件之外,还会附送详细的拼装说明书。我们按照说明书上一步步操作, 即可拼出复杂的积木模型。 如果从数据结构与算法的角度看,大大小小的「积木」就是数据结构,而「拼装说明书」上的一系列步骤就是 算法。 例二:查字典。在字典中,每个汉字都有一个对应的拼音,而字典是按照拼音的英文字母表顺序排列的。假设 需要在字典中查询任意一个拼音首字母为 数据结构与算法的关系 如果将「LEGO 乐高」类比到「数据结构与算法」,那么可以得到下表所示的对应关系。 数据结构与算法 LEGO 乐高 输入数据 未拼装的积木 数据结构 积木组织形式,包括形状、大小、连接方式等 算法 把积木拼成目标形态的一系列操作步骤 输出数据 积木模型 1. 引言 hello‑algo.com 11 � 约定俗成的简称 在实际讨论中,我们通常会将「数据结构与算法」直接简称为「算法」。例如,我们熟称的0 码力 | 202 页 | 15.73 MB | 1 年前3Hello 算法 1.1.0 Go版
到了你。本书是我对这个问题给出的答案,即使不是最 优解,也至少是一次积极的尝试。本书虽然不足以让你直接拿到 Offer,但会引导你探索数据结构与算法的 “知识地图”,带你了解不同“地雷”的形状、大小和分布位置,让你掌握各种“排雷方法”。有了这些本领, 相信你可以更加自如地刷题和阅读文献,逐步构建起完整的知识体系。 我深深赞同费曼教授所言:“Knowledge isn’t free. You 图 1‑5 拼装积木 两者的详细对应关系如表 1‑1 所示。 表 1‑1 将数据结构与算法类比为拼装积木 数据结构与算法 拼装积木 输入数据 未拼装的积木 数据结构 积木组织形式,包括形状、大小、连接方式等 算法 把积木拼成目标形态的一系列操作步骤 输出数据 积木模型 值得说明的是,数据结构与算法是独立于编程语言的。正因如此,本书得以提供基于多种编程语言的实现。 约定俗成的简称 LeetCode 算法题 目,实际上同时考查数据结构和算法两方面的知识。 1.3 小结 ‧ 算法在日常生活中无处不在,并不是遥不可及的高深知识。实际上,我们已经在不知不觉中学会了许多 算法,用以解决生活中的大小问题。 ‧ 查字典的原理与二分查找算法相一致。二分查找算法体现了分而治之的重要算法思想。 ‧ 整理扑克的过程与插入排序算法非常类似。插入排序算法适合排序小型数据集。 第 1 章 初识算法 hello‑algo0 码力 | 383 页 | 18.48 MB | 1 年前3Hello 算法 1.0.0 Golang版
到了你。本书是我对这个问题给出的答案,即使不是最 优解,也至少是一次积极的尝试。本书虽然不足以让你直接拿到 Offer,但会引导你探索数据结构与算法的 “知识地图”,带你了解不同“地雷”的形状、大小和分布位置,让你掌握各种“排雷方法”。有了这些本领, 相信你可以更加自如地刷题和阅读文献,逐步构建起完整的知识体系。 我深深赞同费曼教授所言:“Knowledge isn’t free. You 图 1‑5 拼装积木 两者的详细对应关系如表 1‑1 所示。 表 1‑1 将数据结构与算法类比为拼装积木 数据结构与算法 拼装积木 输入数据 未拼装的积木 数据结构 积木组织形式,包括形状、大小、连接方式等 算法 把积木拼成目标形态的一系列操作步骤 输出数据 积木模型 值得说明的是,数据结构与算法是独立于编程语言的。正因如此,本书得以提供基于多种编程语言的实现。 � 约定俗成的简称 LeetCode 算法题目,实际上同时考查数据结构和算法两方面的知识。 1.3 小结 ‧ 算法在日常生活中无处不在,并不是遥不可及的高深知识。实际上,我们已经在不知不觉中学会了许多 算法,用以解决生活中的大小问题。 ‧ 查字典的原理与二分查找算法相一致。二分查找算法体现了分而治之的重要算法思想。 第 1 章 初识算法 hello‑algo.com 16 ‧ 整理扑克的过程与插入排序算法非常类似。插入排序算法适合排序小型数据集。0 码力 | 382 页 | 17.60 MB | 1 年前3Hello 算法 1.2.0 简体中文 Go 版
到了你。本书是我对这个问题给出的答案,即使不是最 优解,也至少是一次积极的尝试。本书虽然不足以让你直接拿到 Offer,但会引导你探索数据结构与算法的 “知识地图”,带你了解不同“地雷”的形状、大小和分布位置,让你掌握各种“排雷方法”。有了这些本领, 相信你可以更加自如地刷题和阅读文献,逐步构建起完整的知识体系。 我深深赞同费曼教授所言:“Knowledge isn’t free. You 图 1‑5 拼装积木 两者的详细对应关系如表 1‑1 所示。 表 1‑1 将数据结构与算法类比为拼装积木 数据结构与算法 拼装积木 输入数据 未拼装的积木 数据结构 积木组织形式,包括形状、大小、连接方式等 算法 把积木拼成目标形态的一系列操作步骤 输出数据 积木模型 值得说明的是,数据结构与算法是独立于编程语言的。正因如此,本书得以提供基于多种编程语言的实现。 约定俗成的简称 LeetCode 算法题 目,实际上同时考查数据结构和算法两方面的知识。 1.3 小结 ‧ 算法在日常生活中无处不在,并不是遥不可及的高深知识。实际上,我们已经在不知不觉中学会了许多 算法,用以解决生活中的大小问题。 ‧ 查字典的原理与二分查找算法相一致。二分查找算法体现了分而治之的重要算法思想。 ‧ 整理扑克的过程与插入排序算法非常类似。插入排序算法适合排序小型数据集。 第 1 章 初识算法 www0 码力 | 384 页 | 18.49 MB | 10 月前3Hello 算法 1.0.0b5 Golang版
了你。本书是我对此问题的给出的答案,即使不是最优解, 也至少是一次积极的尝试。这本书虽然不足以让你直接拿到 Offer ,但会引导你探索数据结构与算法的“知 识地图”,带你了解不同“地雷”的形状大小和分布位置,让你掌握各种“排雷方法”。有了这些本领,相信 你可以更加自如地应对刷题和阅读文献,逐步构建起完整的知识体系。 本书中的代码附有可一键运行的源文件,托管于 github.com/krahets/hello‑algo 图 1‑5 拼装积木 两者的详细对应关系如表 1‑1 所示。 表 1‑1 将数据结构与算法类比为积木 数据结构与算法 拼装积木 输入数据 未拼装的积木 数据结构 积木组织形式,包括形状、大小、连接方式等 算法 把积木拼成目标形态的一系列操作步骤 输出数据 积木模型 值得说明的是,数据结构与算法是独立于编程语言的。正因如此,本书得以提供多种编程语言的实现。 � 约定俗成的简称 LeetCode 算法题目,实际上同时考察了数据结构和算法两方面的知识。 1.3 小结 ‧ 算法在日常生活中无处不在,并不是遥不可及的高深知识。实际上,我们已经在不知不觉中学会了许多 算法,用以解决生活中的大小问题。 ‧ 查阅字典的原理与二分查找算法相一致。二分查找算法体现了分而治之的重要算法思想。 第 1 章 初识算法 hello‑algo.com 15 ‧ 整理扑克的过程与插入排序算法非常类似。插入排序算法适合排序小型数据集。0 码力 | 379 页 | 30.70 MB | 1 年前3Hello 算法 1.0.0b4 Golang版
了你。本书是我对此问题的给出的答案,虽然不一定正确, 但至少是一次积极的尝试。这本书虽然不足以让你直接拿到 Offer ,但会引导你探索数据结构与算法的“知 识地图”,带你了解不同“地雷”的形状大小和分布位置,让你掌握各种“排雷方法”。有了这些本领,相信 你可以更加自如地应对刷题和阅读文献,逐步构建起完整的知识体系。 本书中的代码附有可一键运行的源文件,托管于 github.com/krahets/hello‑algo hello‑algo.com 11 Figure 1‑5. 拼装积木 两者的详细对应关系如下表所示。 数据结构与算法 LEGO 乐高 输入数据 未拼装的积木 数据结构 积木组织形式,包括形状、大小、连接方式等 算法 把积木拼成目标形态的一系列操作步骤 输出数据 积木模型 值得注意的是,数据结构与算法独立于编程语言。正因如此,本书得以提供多种编程语言的实现。 � 约定俗成的简称 在 算法题目,实际上同时考察了数据结构和算法两方面的知识。 1.3. 小结 ‧ 算法在日常生活中无处不在,并不是遥不可及的高深知识。实际上,我们已经在不知不觉中学会了许多 算法,用以解决生活中的大小问题。 ‧ 查阅字典的原理与二分查找算法相一致。二分查找体现了分而治之的重要算法思想。 ‧ 整理扑克的过程与插入排序算法非常类似。插入排序适合排序小型数据集。 ‧ 货币找零的步骤本质上是贪心算法,每一步都采取当前看来的最好选择。0 码力 | 347 页 | 27.40 MB | 1 年前3
共 24 条
- 1
- 2
- 3