
The Go programming Language
文章平均质量分 89
Linkkk丶
这个作者很懒,什么都没留下…
展开
-
Packages and the Go Tool
Go 的编译显著的快于大部分的其他编译语言,编译的 Go package 的对象文件记录导出信息,导出信息不仅仅是为了 package 自己,也是为了它的依赖。标准库中最常用的 package 是 bufio,bytes,flag,fmt,http,io,json,os,sort,sync,和 time。按照惯例,package name 是 import path 的最后一段,结果,两个 package 可能有相同的 package name,即使它们的 import path 是必定不同的。...翻译 2022-08-08 15:00:32 · 283 阅读 · 0 评论 -
Methods in Go
常用的选择是类型名字的首字母,比如对 Point 选择 p。新的变量为关于 cache 的变量赋予了更有表现力的名字,且因为 sync.Mutex 字段是内嵌的,它的 Lock 和 Unlock 方法被 promoted 到了未命名的结构体类型,允许我们使用一个 self-explanatory 的语法来为 cache 加锁。在实际的程序中,公约规定如果任何 Point 的方法有一个指针 receiver,所有的 Point 方法都应当有一个指针的 receiver,即使有道不需要指针 receiver。.翻译 2022-08-03 20:03:21 · 112 阅读 · 0 评论 -
Functions In Go
再健壮的程序中,“期望”的错误,由不正确的输入,配置错误,或失败的I/O导致的,应当使用error值进行处理。这一log消息通常有足够的信息用于诊断问题的根源,而不需要再次运行程序,所以它应当总是被包含在一个panic程序的bug报告中。对于失败也是期望行为的函数来说,函数会返回额外的结果,按照惯例,是最后一个返回值,以表示错误。它是一个表达式,它的值被称为。int参数的在函数体内的行为与slice类似,但是变参函数的类型与以slice作为参数的函数类型不同。...翻译 2022-08-01 20:20:33 · 306 阅读 · 0 评论 -
Slice in Go
Slices表示变长序列,其元素类型相同。slice类型写作[]T,元素类型为T。Slices用于访问其元素的子序列。多个slice可能共享同一个underlyingarray,也可能引用该底层数组的重叠部分。s[ij],其中0翻译 2022-07-21 20:52:29 · 145 阅读 · 0 评论 -
Struct in Go
的名字是隐式声名的,它的名字就是它的命名类型名,这些名字在dot表达式中是可选的。在声明的package外,我们依然可以用w.X=8进行访问,但是显式的使用fieldname,w.circle.point.X,就不行了,因为circle和pointfield式不向外暴露的。我们使用==和!field的顺序对于struct来说是有意义的,不同的field顺序表示不同的struct类型。field的类型必须是一个命名类型或者是指向命名类型的指针。......翻译 2022-07-19 21:06:58 · 124 阅读 · 0 评论 -
Map in Go
有时我们需要一个键是slice的map或者set,但是不能直接使用slice作为map的键,因为map的键之间是能直接进行比较的。不能对map元素进行取地址的理由之一是map的增长可能导致rehash的发生,届时map中的元素的存储位置可能发生改变,而导致当前取得的地址非法。即使使用的键不在map中,对该键的所有操作也是合法的。上述方法可以应用于任何不能比较的类型,设置可以借此定义自己的比较函数,键的类型也可以其他可以进行比较的类型。使用[]进行取值。...翻译 2022-07-19 10:41:57 · 193 阅读 · 0 评论 -
Go Modules Reference
Modules 即 Go 如何管理依赖。module 是一起释放,版本化,分发的 package 的集合。模块可能从版本控制仓库中直接下载或者从 module 代理服务器下载。module 由 module path 标识,module path 在 go.mod 文件中声明,module 的依赖信息也在 go.mod 文件中声明。module root directory 是包含 go.mod 文件的目录。main module 是包含调用 go 命令所在的目录的 module。module 中的每个 p翻译 2022-07-06 10:57:46 · 209 阅读 · 0 评论 -
2. Program Structure
Go 中的 package 和其他语言中的 libararies 和 modules 类似,支持模块化,封装,分开编译和重用。一个包的源码包含一个或多个 .go 文件,通常在名字以导入路径为结尾的目录中。比如,gopl.io/ch1/helloworld package 的文件存储在目录 $GOPATH/src/gopl.io/ch1/helloworld 中。每个 package 都为其中的声明提供一个分别的命名空间。例如,在 image package 中,标识符 Decode 与 unicode/ut翻译 2022-07-05 20:54:21 · 131 阅读 · 0 评论 -
Tutorial
Go 代码被归入 package 中进行组织,package 类似于其他语言的 libraries 或者 modules。一个 package 由一个或多个 在同一目录下的 .go 源文件组成,它们定义了包做了什么。每个源文件都以一个 package 声明开头,这声明了文件属于哪个包,紧接着是它导入的其他包的列表,然后程序的声明被存储到文件中。Package main 是特殊的,它定义了一个单独的可执行程序,不是一个库。在 package main 中,函数 main 也是特殊的,它是函数执行的起始点。ma翻译 2022-07-05 18:04:16 · 89 阅读 · 0 评论