EffectiveGo.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Effective Go /effective_go.html Effective Go 简介 例子 格式 注释 名字 程序包名 Get方法 接口名 混合大小写 分号 控制结构 If 重新声明和重新赋值 For Switch 类型switch 函数 多个返回值 命名的结果参数 延期执行 数据 使用new进行分配 构造器和复合文字 使用make进行分配 数组 切片 二维切片 Maps 打印输出 append内建函数 初始化 常量 变量 init函数 方法 指针 vs. 值 接口和其它类型 接口 转换 接口转换和类型断言 概述 接口和方法 空白标识符 空白标识符在多赋值语句中的使用 未使用的导入和变量 副作用式导入 接口检查 内嵌(Embedding) 并发 以通信实现共享 Goroutines Channels Channel类型的Channel 并行 一个“Leaky Buffer”的示例 错误 严重故障(Panic) 恢复(Recover) 一个web服务示例 中文译者 简介 Go是一个新的语言。虽然是借鉴了现有的语言,但是它独有的特性可以使得高效的Go程序,与其它语言编写的程序相比,大不相同。直接将C++或者Java 程序转换为Go程序,是不可能产生令人满意的结果—Java程序是使用Java编写的,而不是Go。另一方面,从Go的角度考虑问题则会产生成功的,而且 大不相同的程序。换句话说,想要编写好的Go程序,理解它的特性和风格是非常重要的。了解Go语言编程中已有的约定也非常重要,例如命名,格式,程序结 构,等等。这会使得其他Go程序员容易理解你编写的程序。 该文档对如何编写清晰,符合语言规范的Go代码,给出了一些建议。你应该先阅读language specification,Tour of Go和How to Write Go Code,然后将该文档作为扩展阅读。 例子 Go package sources旨在不仅作为核心库来使用,而且还可以作为如何使用语言的例子。此外,许多程序包都包含了可以在网站上独立执行的例子,例如这一个(如果需要,点击单词Example来打开)。如果你对如何处理一个问题,或者如何进行实现有疑问,那么库中的文档,代码和例子可以提供答案,概念和背景。 格式 格式化是一个最具争议,但又无关紧要的问题。人们可以习惯于不同的格式风格。但是,最好不必这样,这就不用在每个人是否遵守相同风格的话题上花费时间了。问题是在没有一个长效的风格指导下,如何达到这样美好的乌托邦。 对于Go,我们采取了不同寻常的方式,让机器来处理大多数的格式问题。程序gofmt(也可以用go fmt,其操作于程序包的级别,而不是源文件级别),读入一个Go程序,然后输出按照标准风格缩进和垂直对齐的源码,并且保留了根据需要进行重新格式化的注释。如果你想知道如何处理某种新的布局情况,可以运行gofmt;如果答案看起来不正确,则需要重新组织你的程序(或者提交一个关于gofmt的bug),不要把问题绕过去。 举个例子,不需要花费时间对结构体中每个域的注释进行排列。Gofmt将会替你完成这些。给定一个声明 type T struct { name string // name of the object value int // its value } gofmt将会按列进行排列: type T struct { name string // name of the object value int // its value } 标准程序包中的所有Go代码,都已经使用gofmt进行了格式化。 还是有一些格式化的细节的。非常简短: 缩进 我们使用tab进行缩进,这是gofmt的缺省输出。只有在你必须的时候才使用空格。 行长度 Go没有行长度限制。不必担心会有打孔卡片溢出。如果感觉一行太长,可以折成几行,并额外使用一个tab进行缩进。 括号 Go相比C和Java,很少需要括号:控制结构(if,for,switch)的语法不需要括号。而且,操作符优先级更短,更清晰。这样, x8 + y16 的含义就已经由空格表明了。这不像其它语言。 注释 Go提供了C风格的块注释/* */和C++风格的行注释//。通常为行注释;块注释大多数作为程序包的注释,但也可以用于一个表达式中,或者用来注释掉一大片代码。 程序—同时又是网络服务器—godoc,用来处理Go源文件,抽取有关程序包内容的文档。在顶层声明之前出现,并且中间没有换行的注释,会随着声明一起被抽取,作为该项的解释性文本。这些注释的本质和风格决定了godoc所产生文档的质量。 每个程序包都应该有一个包注释,一个位于package子句之

文档评论(0)

dashewan + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档