文档章节

《Effective Go》中英双语版

兵戈天下
 兵戈天下
发布于 2016/08/13 13:53
字数 886
阅读 19
收藏 1
点赞 0
评论 0

《Effective Go》中英双语版

Effective Go - 《实效 GO 编程》

Introduction

Go is a new language. Although it borrows ideas from existing languages, it has unusual properties that make effective Go programs different in character from programs written in its relatives. A straightforward translation of a C++ or Java program into Go is unlikely to produce a satisfactory result—Java programs are written in Java, not Go. On the other hand, thinking about the problem from a Go perspective could produce a successful but quite different program. In other words, to write Go well, it's important to understand its properties and idioms. It's also important to know the established conventions for programming in Go, such as naming, formatting, program construction, and so on, so that programs you write will be easy for other Go programmers to understand.

This document gives tips for writing clear, idiomatic Go code. It augments the language specification, the Tour of Go, and How to Write Go Code, all of which you should read first.

引言

Go 是一门全新的语言。尽管它从既有的语言中借鉴了许多理念,但其与众不同的特性,使得用 Go 编程在本质上就不同于其它语言。将现有的 C++ 或 Java 程序直译为 Go 程序并不能令人满意——毕竟 Java 程序是用 Java 编写的,而不是 Go。 另一方面,若从 Go 的角度去分析问题,你就能编写出同样可行但大不相同的程序。 换句话说,要想将 Go 程序写得好,就必须理解其特性和风格。了解命名、格式化、程序结构等既定规则也同样重要,这样你编写的程序才能更容易被其他程序员所理解。

本文档就如何编写清晰、地道的 Go 代码提供了一些技巧。它是对 语言规范Go 语言之旅 以及 如何使用 Go 编程 的补充说明,因此我们建议您先阅读这些文档。

Effective Go 作为 GO 语言的入门必读教程,值得每位初学者好好阅读一遍,编辑成书,方便阅读交流。


当前完成章节(全部完成):

  1. 前言
  2. 引言
  3. 格式化
  4. 注释
  5. 命名
  6. 分号
  7. 控制结构
  8. 函数
  9. 数据
  10. 初始化
  11. 方法
  12. 接口和其他类型
  13. 空白标识符
  14. 内嵌
  15. 并发
  16. 错误
  17. 一个 Web 服务器

改版说明:@2016.8.6 by bingoHuang, revision to Chinese & English version.

李笑来在他的新书 《人人都是工程师》 中说过一句话: 在中国,对绝大多数人来说,English + Computer Skills = Freedom(英语 + 计算机技能 = 自由)

我非常的赞同。英语和计算机技能是相辅相成,学习好一门编程语言(如 Go)的同时,还能加强英语学习,何乐而不为。所以我决定将本书改版成中英双语版,方便更多的人来学习阅读。

特别感谢 Golang 官网提供的英文版教程。

感谢 hellogcc 提供的 中文翻译版一,这是我之前制作中文版电子书所参考的资料,翻译的很用心。

要更感谢 Go 语言中文社区 提供的 中文翻译版二,此翻译更贴切有味道,不可多得。本人已和 Go-zh 项目组 沟通过,获取了该社区的授权,故将此作为双语版的中文版本。

参考

参考官方英文版:Effective Go 英文版

参考中文翻译版一:Effective Go 中文版

参考中文翻译版二:Effective Go 中文版

Read, Fork and Star

License

除特别注明外, 本页内容均采用知识共享 - 署名(CC-BY)3.0 协议授权,代码采用 BSD 协议 授权。

© 著作权归作者所有

共有 人打赏支持
兵戈天下
粉丝 5
博文 9
码字总数 10703
作品 0
杭州
高级程序员
Effective Go 中英双语版

Effective Go - 《实效 GO 编程》 Introduction Go is a new language. Although it borrows ideas from existing languages, it has unusual properties that make effective Go programs ......

兵戈天下
2016/08/13
726
3
多参数产品描述的表单设计问题

请教: 类似这样的产品描述: http://www.bflc.cn/productdetail.aspx?pid=694&cid=226 每个产品都有五个参数,选项卡切换显示,还是中英双语版,那后台的录入表单中就要有10个editor吗?因为...

程更新
2013/08/01
89
1
射手影音播放器的网友评论

射手影音播放器是由射手网创建与维护的开源播放器项目。内核基于MPC(感谢Gabest)、MPC-HC与ffmpeg。同时加入更多真正符合中国用户习惯的功能,旨在改进华人的数字影视观赏体验,建立和维护...

红薯
2009/12/11
922
10
射手影音播放器

射手影音播放器是由射手网创建与维护的开源播放器项目。内核基于MPC(感谢Gabest)、MPC-HC与ffmpeg。同时加入更多真正符合中国用户习惯的功能,旨在改进华人的数字影视观赏体验,建立和维护...

匿名
2009/03/09
9.6K
3
Windows平台上全功能的Markdown编辑器--MarkDown Editor

Windows下全功能的Markdown编辑器(x86桌面版),软件截图如下: MarkDownEditor与该平台其他主流编辑器的比较如图: 主要功能其实在上面的表格里面都有介绍,我就捡几个重要的feature说: ...

流浪的关公
2016/02/28
1K
0
射手影音播放器--SPlayer

射手影音播放器是由射手网创建与维护的开源播放器项目。采用最新DirectX硬件加速技术,特有画面增益,清晰播放720p、1080p高清。另有智能系统配置功能,安装后自动选择最佳的画面输出模式。 ...

匿名
2009/08/20
20K
2
SPlayer的网友评论

射手影音播放器是由射手网创建与维护的开源播放器项目。采用最新DirectX硬件加速技术,特有画面增益,清晰播放720p、1080p高清。另有智能系统配置功能,安装后自动选择最佳的画面输出模式。 ...

红薯
2009/12/11
1K
9
基于Python的人机语音交互界面--Roby语音助理

Roby是由作者团队开发的一款开源语音助理,演示视频:http://v.youku.com/vshow/id_XODExMTU1ODQ4.html 当前版本简介 仅提供基本演示功能 基于Python2.7,运行于Linux环境 支持中英双语 CMU ...

MarkYoung
2014/12/03
1K
1
暴君第一季/全集Tyrant迅雷下载

本季第一季 Tyrant Season 1 (2014)看点:虽然李安退出了FX系列剧《暴君》(Tyrant),称不想耽误了剧集的制作,但显然FX对这部剧的重视程度非比寻常,因为他们找来的李安的继任者是大卫·叶茨...

老先生二号
2017/10/02
0
0
scruel/ML-AndrewNg-Notes

ML-AndrewNg-Notes 课程地址: https://www.coursera.org/learn/machine-learning (吴恩达老师在 Coursera 上的机器学习公开课) 本项目包含课程中的课后作业以及笔记: 笔记(notes)都为中文...

scruel
05/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

对基于深度神经网络的Auto Encoder用于异常检测的一些思考

一、前言 现实中,大部分数据都是无标签的,人和动物多数情况下都是通过无监督学习获取概念,故而无监督学习拥有广阔的业务场景。举几个场景:网络流量是正常流量还是攻击流量、视频中的人的...

冷血狂魔
21分钟前
0
0
并发设计之A系统调用B系统

A-->B A在发送请求之前,用乐观锁,减少对B的重复调用,这样一定程度上是幂等性。 比如A系统支付功能,要调用B系统进行支付操作,但是前端对"支付"按钮不进行控制,即用户会不断多次点击支付...

汉斯-冯-拉特
41分钟前
0
0
HTTP协议通信原理

了解HTTP HTTP(HyperText Transfer Protocol)是一套计算机通过网络进行通信的规则。计算机专家设计出HTTP,使HTTP客户(如Web浏览器)能够从HTTP服务器(Web服务器)请求信息和服务。 HTTP使用...

寰宇01
今天
0
0
【Java动态性】之反射机制

一、Java反射机制简介

谢余峰
今天
1
0
Centos 6.X 部署环境搭建

1.Linux学习笔记CentOS 6.5(一)--CentOS 6.5安装过程

IT追寻者
今天
0
0
博客即同步至腾讯云+社区声明

我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=8vy9bsmadbko...

xiaoge2016
今天
1
0
大数据教程(3.1):Linux系统搭建网络YUM源服务器

博主在前面的2.5章节讲述了linux系统本地YUM服务器的搭建和httpd轻量级静态网站服务器的安装,本节博主将为大家分享内网环境中搭建自己的网络YUM服务器的全过程。如果大家对本地YUM服务器还不...

em_aaron
今天
1
0
蚂蚁技术专家:一篇文章带你学习分布式事务

小蚂蚁说: 分布式事务是企业集成中的一个技术难点,也是每一个分布式系统架构中都会涉及到的一个东西,特别是在这几年越来越火的微服务架构中,几乎可以说是无法避免,本文就围绕分布式事务...

Java大蜗牛
今天
1
0
新的Steam应用将拓展服务项目

导读 未来几周,Steam将推出两个免费的应用程序Steam Link和Steam Video。这两个应用程序都旨在拓展Steam平台的业务和便利性。 即将开放的Steam Link应用程序最先提供了Android测试版,它将允...

问题终结者
今天
0
0
golang 第三方包的使用总结

golang 第三方包的安装的方法: 1. go get 安装 $ go get github.com/gin-gonic/gin 注意:执行go get 命令需要先安装git命令,并配置git全局变量。 2. 源码包安装 由于国内网络问题,很多时...

科陆李明
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部