所有的.go文件,除了空行和注释,都应该在第一行声明自己所属…

“所有的.go文件,除了空行和注释,都应该在第一行声明自己所属的包。每个包都在一个单独的目录里。不能把多个包放到同一个目录中,也不能把同一个包的文件分拆到多个不同目录中。这意味着,同一个目录下的所有.go文件必须声明同一个包名。”

—— “Go语言实战(异步图书)” by 威廉·肯尼迪(William Kennedy), 布赖恩·克特森(ian Ketelsen), 埃里克·圣马丁(BrErik St. Martin), 李兆海

标签:  2018年9月1日

使用指针作为接收者声明的方法,只能在接口类型的值是一个指针的…

“使用指针作为接收者声明的方法,只能在接口类型的值是一个指针的时候被调用。使用值作为接收者声明的方法,在接口类型的值为值或者指针时,都可以被调用。”

—— “Go语言实战(异步图书)” by 威廉·肯尼迪(William Kennedy), 布赖恩·克特森(ian Ketelsen), 埃里克·圣马丁(BrErik St. Martin), 李兆海

标签:  2018年8月31日

因为大部分方法在被调用后都需要维护接收者的值的状态,所以,一…

“因为大部分方法在被调用后都需要维护接收者的值的状态,所以,一个最佳实践是,将方法的接收者声明为指针。”

—— “Go语言实战(异步图书)” by 威廉·肯尼迪(William Kennedy), 布赖恩·克特森(ian Ketelsen), 埃里克·圣马丁(BrErik St. Martin), 李兆海

标签:  2018年8月31日

如果声明函数的时候带有接收者,则意味着声明了一个方法。这个方…

“如果声明函数的时候带有接收者,则意味着声明了一个方法。这个方法会和指定的接收者的类型绑在一起。”

—— “Go语言实战(异步图书)” by 威廉·肯尼迪(William Kennedy), 布赖恩·克特森(ian Ketelsen), 埃里克·圣马丁(BrErik St. Martin), 李兆海

标签:  2018年8月31日

空结构在创建实例时,不会分配任何内存。这种结构很适合创建没有…

“空结构在创建实例时,不会分配任何内存。这种结构很适合创建没有任何状态的类型。对于默认匹配器来说,不需要维护任何状态,所以我们只要实现对应的接口就行。”

—— “Go语言实战(异步图书)” by 威廉·肯尼迪(William Kennedy), 布赖恩·克特森(ian Ketelsen), 埃里克·圣马丁(BrErik St. Martin), 李兆海

标签:  2018年8月31日

命名接口的时候,也需要遵守Go语言的命名惯例。如果接口类型只…

“命名接口的时候,也需要遵守Go语言的命名惯例。如果接口类型只包含一个方法,那么这个类型的名字以er结尾。我们的例子里就是这么做的,所以这个接口的名字叫作Matcher。如果接口类型内部声明了多个方法,其名字需要与其行为关联。”

—— “Go语言实战(异步图书)” by 威廉·肯尼迪(William Kennedy), 布赖恩·克特森(ian Ketelsen), 埃里克·圣马丁(BrErik St. Martin), 李兆海

标签:  2018年8月31日

关键字defer会安排随后的函数调用在函数返回时才执行。在使…

“关键字defer会安排随后的函数调用在函数返回时才执行。在使用完文件后,需要主动关闭文件。使用关键字defer来安排调用Close方法,可以保证这个函数一定会被调用。哪怕函数意外崩溃终止,也能保证关键字defer安排调用的函数会被执行。关键字defer可以缩短打开文件和关闭文件之间间隔的代码行数,有助提高代码可读性,减少错误。”

—— “Go语言实战(异步图书)” by 威廉·肯尼迪(William Kennedy), 布赖恩·克特森(ian Ketelsen), 埃里克·圣马丁(BrErik St. Martin), 李兆海

标签:  2018年8月31日

因为Go编译器可以根据赋值运算符右边的值来推导类型,声明常量…

“因为Go编译器可以根据赋值运算符右边的值来推导类型,声明常量的时候不需要指定类型。此外,这个常量的名称使用小写字母开头,表示它只能在search包内的代码里直接访问,而不暴露到包外面。”

—— “Go语言实战(异步图书)” by 威廉·肯尼迪(William Kennedy), 布赖恩·克特森(ian Ketelsen), 埃里克·圣马丁(BrErik St. Martin), 李兆海

标签:  2018年8月31日

如果我们使用闭包访问这些变量,随着外层函数里变量值的改变,内…

“如果我们使用闭包访问这些变量,随着外层函数里变量值的改变,内层的匿名函数也会感知到这些改变。所有的goroutine都会因为闭包共享同样的变量。”

—— “Go语言实战(异步图书)” by 威廉·肯尼迪(William Kennedy), 布赖恩·克特森(ian Ketelsen), 埃里克·圣马丁(BrErik St. Martin), 李兆海

标签:  2018年8月31日

因为有了闭包,函数可以直接访问到那些没有作为参数传入的变量。…

“因为有了闭包,函数可以直接访问到那些没有作为参数传入的变量。匿名函数并没有拿到这些变量的副本,而是直接访问外层函数作用域中声明的这些变量本身。”

—— “Go语言实战(异步图书)” by 威廉·肯尼迪(William Kennedy), 布赖恩·克特森(ian Ketelsen), 埃里克·圣马丁(BrErik St. Martin), 李兆海

标签:  2018年8月31日

Go语言中,所有的变量都以值的方式传递。因为指针变量的值是所…

“Go语言中,所有的变量都以值的方式传递。因为指针变量的值是所指向的内存地址,在函数间传递指针变量,是在传递这个地址值,所以依旧被看作以值的方式在传递。”

—— “Go语言实战(异步图书)” by 威廉·肯尼迪(William Kennedy), 布赖恩·克特森(ian Ketelsen), 埃里克·圣马丁(BrErik St. Martin), 李兆海

标签:  2018年8月31日

使用指针变量可以让函数访问并修改一个变量的状态,而这个变量可…

“使用指针变量可以让函数访问并修改一个变量的状态,而这个变量可以在其他函数甚至是其他goroutine的作用域里声明。”

—— “Go语言实战(异步图书)” by 威廉·肯尼迪(William Kennedy), 布赖恩·克特森(ian Ketelsen), 埃里克·圣马丁(BrErik St. Martin), 李兆海

标签:  2018年8月31日

一个goroutine是一个独立于其他函数运行的函数。使用关…

“一个goroutine是一个独立于其他函数运行的函数。使用关键字go启动一个goroutine,并对这个goroutine做并发调度。”

—— “Go语言实战(异步图书)” by 威廉·肯尼迪(William Kennedy), 布赖恩·克特森(ian Ketelsen), 埃里克·圣马丁(BrErik St. Martin), 李兆海

标签:  2018年8月31日

如果要调用的函数返回多个值,而又不需要其中的某个值,就可以使…

“如果要调用的函数返回多个值,而又不需要其中的某个值,就可以使用下划线标识符将其忽略。”

—— “Go语言实战(异步图书)” by 威廉·肯尼迪(William Kennedy), 布赖恩·克特森(ian Ketelsen), 埃里克·圣马丁(BrErik St. Martin), 李兆海

标签:  2018年8月31日

关键字range可以用于迭代数组、字符串、切片、映射和通道。…

“关键字range可以用于迭代数组、字符串、切片、映射和通道。使用for range迭代切片时,每次迭代会返回两个值。第一个值是迭代的元素在切片里的索引位置,第二个值是元素值的一个副本。”

—— “Go语言实战(异步图书)” by 威廉·肯尼迪(William Kennedy), 布赖恩·克特森(ian Ketelsen), 埃里克·圣马丁(BrErik St. Martin), 李兆海

标签:  2018年8月31日

写并发程序的时候,最佳做法是,在main函数返回前,清理并终…

“写并发程序的时候,最佳做法是,在main函数返回前,清理并终止所有之前启动的goroutine。编写启动和终止时的状态都很清晰的程序,有助减少bug,防止资源异常。”

—— “Go语言实战(异步图书)” by 威廉·肯尼迪(William Kennedy), 布赖恩·克特森(ian Ketelsen), 埃里克·圣马丁(BrErik St. Martin), 李兆海

标签:  2018年8月31日

根据经验,如果需要声明初始值为零值的变量,应该使用var关键…

“根据经验,如果需要声明初始值为零值的变量,应该使用var关键字声明变量;如果提供确切的非零值初始化变量或者使用函数返回值创建变量,应该使用简化变量声明运算符。”

—— “Go语言实战(异步图书)” by 威廉·肯尼迪(William Kennedy), 布赖恩·克特森(ian Ketelsen), 埃里克·圣马丁(BrErik St. Martin), 李兆海

标签:  2018年8月31日

况且人生的智慧其实就在摒除那种不必要的东西,而把哲学上的问题…

况且人生的智慧其实就在摒除那种不必要的东西,而把哲学上的问题化到很简单的地步——家庭的享受(夫妻、子、女)、生活的享受、大自然和文化的享受——同时停止其他不相干的科学训练和智识的追求。这么一来,中国哲学家的人生问题即变得稀少简单,同时人生智慧也即是指一种不耐烦的态度——一种对形而上的哲学,以及与人生没有实际关系的智识的不耐烦态度。//摘自由 林语堂 撰写的《生活的艺术(林语堂独家授权作品)(博集文学典藏系列)》

标签:  2018年8月31日

牛是极犟的东西,而且有气度,任打任骂,慢慢眨着眼吃它想吃的东…

牛是极犟的东西,而且有气度,任打任骂,慢慢眨着眼吃它想吃的东西。我总想,大约哲学家便是这种样子,否则学问如何做得成功?//摘自由 阿城 撰写的《阿城精选集 (世纪文学60家)》

标签:  2018年8月27日

大火霎时封了山顶,两边的火撞在一起,腾起几百丈高,须仰视才见…

大火霎时封了山顶,两边的火撞在一起,腾起几百丈高,须仰视才见。那火的顶端,舔着通红的天底。我这才明白,我从未真正见过火,也未见过毁灭,更不知新生。//摘自由 阿城 撰写的《阿城精选集 (世纪文学60家)》

标签:  2018年8月27日