电子书:《Go语言程序设计》作者:Mark

[复制链接]
查看204 | 回复1 | 2019-12-7 13:35:37 | 显示全部楼层 |阅读模式

《Go语言程序设计》作者:Mark_1

《Go语言程序设计》作者:Mark_1

《Go语言程序设计》作者:Mark_2

《Go语言程序设计》作者:Mark_2

《Go语言程序设计》作者:Mark_3

《Go语言程序设计》作者:Mark_3


内容简介:

·新·锐·编·程·语·言·集·萃
P
Yoarammina in go
Creating Applications for the 2lsh Century
Go语言程序设计
【英】 Mark Summerfield著
许式伟吕桂华徐立何李石译
人民邮电出版社

图书在版编目(CIP)数据
Go语言程序设计/(英)萨默菲尔德
( Summerfield,M.)著;许式伟等译.一北京:人民邮
电出版社,2013.8(2016.3重印)
语言集萃)
Programming in Go
15-317902
人、m卫①萨…②许…Ⅲ0程序语音一程序
中guo版本图书馆CP数据核字(03第099号
内容提
本书既是一本实用的Go语言教程,又是一本权威的Go语言参考手册。书中从如何获取和安装Go语言环境
以及如何建立和运行Go程序开始,逐步介绍了Go语言的语法、特性以及一些标准库,内置数据类型、语句和控
制结构,然后讲解了如何在Go语言中进行面向对象编程,Go语言的并发特性,如何导入和使用标准库包、自定
义包及第三方软件包,提供了评价Go语言、以Go语言思考以及用Go语言编写高性能软件所需的所有知识。
本书的目的是通过使用语言本身提供的所有特性以及Go语言标准库中一些最常用的包,向读者介绍如何进
行地道的Go语言编程。本书自始至终完全从实践的角度出发,每一章提供多个生动的代码示例和专门设计的动
手实验,帮助读者快速掌握开发技能。本书适合对Go语言感兴趣的各个层次的Go语言程序员阅读和参考。
[英」 Mark Summerfield
许式伟目桂华徐立何李石
责任编辑杨海玲
责任印制程彦红杨林杰
◆人民邮电出版社出版发行北京市丰台区成寿寺路11号
却编100164电子却件315@plpress.com.en
网址htp:/www.ptpress.comcn
北京艺辉印刷有限公司印刷
◆开本:80010001/6
字数
2016年3月北京第7次印别
著作权合同登记号图字:01-2012-6496号
定价:69.00元
读者服务热线010)81055410印装质量热线01081055316
反盗版热线00)81055315
广告经营许可证:京东工商广字第8052号

版权声明
Authorized translation from the English language edition, entitled: Programming in Go, 978-0-321
77463-7 by Mark Summerfield, published by Pearson Education, Inc, publishing as Addison-Wesley
Professional, Copyright C 2012 Pearson Education, Inc.
All rights reserved. No part of this book may be reproduced or transmitted in any form or by any
means, electronic or mechanical, including photocopying, recording or by any information storage
retrieval system, without permission from Pearson Education, Inc.
CHINESE SIMPLIFIED language edition published by PEARSON EDUCATION ASIA LTI
and POSTS TELECOM PRESS Copyright o 2013
本书中文简体字版由 Pearson Education Asia Ltd授权人民邮电出版社独家出版。未经出版
者书面许可,不得以任何方式复制或抄袭本书内容。
本书封面贴有 Pearson Education(培生教育出版集团)激光防伪标签,无标签者不得销售
版权所有,侵权必究

译者序
关注过我的人可能都知道,我在新 浪微博、《Go语言编程》一书中都非常高调地下了一个
论断:Go语言将超过C、Java,成为未来十年最流行的语言
为什么我可以如此坚定地相信,选择Go语言不会有错,并且相信Go语言会成为未来10
年最流行的语言?除了Go语言的并发编程模型深得我心外,Go语言的各种语法特性显得那么
深思熟虑、卓绝不凡,其对软件系统架构的领悟,让我深觉无法望其项背,处处带给我惊喜。
Go语言给我的第一个惊喜是大道至简的设计哲学。
Go语言是非常简约的语言。简约的意思是少而精。少就是指数级的多。Go语言极力追求
语言特性的最小化,如果某个语法特性只是少写几行代码,但对解决实际问题的难度不会产生
本质的影响,那么这样的语法特性就不会被加入。Go语言更关心的是如何解决程序员开发上的
心智负担。如何减少代码出错的机会,如何更容易写出高品质的代码,是Go设计时极度关心
Go语言追求显式表达,任何封装都是有_漏.洞_的,最佳的表达方式就是用最直白的表达方式
所以也有人称Go语言为“所写即所得”的语言。
Go语言也是非常追求自然( nature)的语言。Go不只是提供极少的语言特性,并极力追求
语言特性最自然的表达,也就是这些语法特性被设计成恰如多少人期望的那样,尽量避免惊异
事实上,Go语言的语法特性上的争议是非常少的。这些也让Go语言的入门门槛变得非常低
Go语言给我的第二个惊喜是最对胃口的并行支持。
我对服务端开发的探索,始于Eang语言,并且认为 Erlang风格并发模型的精髓是轻量级
_进.程_模型。然而, Erlang除了语言本身不容易被程序员接受外,其基于_进.程_邮箱做消息传递的
并发编程模型也小有瑕疵。我曾经在C++中实现了一个名为CERL的网络库,刚开始在C+中
完全模仿 Erlang风格的并发编程手法,然而在我拿CERL库做云存储服务的实践中,发现了该
编程模型的问题所在并做了相应的调整,这就是后来的CERL20版本。有意思的是,CERL20
与Go语言的并行编程思路不谋而合。某种程度上来说,这种默契也是我创办七牛时,Go语言
甚至语法特性都还没有完全稳定,我们技术选型就坚决地采纳了Go语言的重要原因。
Go语言给我的第三个惊喜是接口
Go语言的接口,并非是你在Java和C#中看到的接口,尽管看起来有点像。Go语言的接
口是非侵入式的接口,具体表现在实现一个接口不需要显式地进行声明。不过,让我意外的不
是Go的非侵入式接口。非侵入式接口只是我接受Go语言的基础。在接口(或契约)的表达上

2译者序
我一直认为Java和C#这些主流的静态类型语言都走错了方向。C++的模板尽管机制复杂,但是
走在了正确的方向上。C++0x(后来的C++11)呼声很高的 concept提案被否,着实让不少人伤
了心。但Go语言的接口远不是非侵入式接口那么简单,它是Go语言类型系统的纲,这表现在
以下几个方面
(1)只要某个类型实现了接口要的方法,那么我们就说该类型实现了此接口。该类型的对
象可赋值给该接口
)作为1的推论,任何类型(包括基础类型如bool、int、 string等)的对象都可以
赋值给空接口 interface(}
3)支持接口查询。如果你曾经是 Windows程序员,你会发现COM思想在Go语言中通
过接口优雅呈现。并且Go语言吸收了其中最精华的部分,而COM中对象生命周期管理的负担,
却因为Go语言基于gc方式的_内.存_管理而不复存在。
Go语言给我的第四个意外惊喜是极度简化但完备的面向对象编程(ooP)方法。
语言废弃大量的OOP特性,如继承、构造析构函数、虚函数、函数重载、默认参数等
简化的符号访问权限控制,将隐藏的this指针改为显式定义的
receiver对象。Go语言让
我看到了OOP编程核心价值原来如此简单——只是多数人都无法看透
Go语言带给我的第五个惊喜是它的错误处理规范。
Go语言引入了内置的错误(eror)类型以及 defer关键字来编写异常.安.全.代码,让人拍
叫绝。下面这个例子,我在多个场合都提过:
错误处理
defer f Close ()
处理文件数据
语言带给我的第六个惊喜是它功能的内聚。
一个最典型的案例是Go语言的组合功能。对于多数语言来说,组合只是形成复合类型
的基本手段,这一点只要想想C语言的 struct就清楚了。但Go语言引入了匿名组合的概
念,它让其他语言原本需要引入继承这样的新概念来完成事情,统一到了组合这样的一个基
础上。
在C++中,你需要这样定义一个派生类
class Foo public Base


#############################################


回复

使用道具 举报

摇摆的三水 | 2019-12-21 20:04:41 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则