{{sellerTotalView > 1 ? __("sellers", {number: sellerTotalView}) : __("seller", {number: sellerTotalView}) }}, {{numTotalView > 1 ? __("items", {number: numTotalView}) : __("item", {number: numTotalView}) }}
免运费
Yami

Nickname

请告诉我们怎么更好地称呼你

更新你的名字
账户 订单 收藏
{{ inviteNavTitle }}
退出登录

切换配送区域

不同区域的库存和配送时效可能存在差异.

历史邮编

{{email ? __('Got it!') : __('Restock Alert')}}

我们将在商品到货后第一时间通知你。

取消
Yami

京东图书

Go程序设计语言(英文版)

{{buttonTypePin == 3 ? __("Scan to view more PinGo") : __("Scan to start")}}

Go程序设计语言(英文版)

{{__(":people-members", {'people': item.limit_people_count})}} {{ itemCurrency }}{{ item.valid_price }} {{ itemCurrency }}{{ item.invalid_price }} {{ itemDiscount }}
后结束
{{ itemCurrency }}{{ item.valid_price }}
{{ itemCurrency }}{{ priceFormat(item.valid_price / item.bundle_specification) }}/{{ item.unit }}
{{ itemDiscount }}
{{ itemCurrency }}{{ item.valid_price }} {{ itemCurrency }}{{ priceFormat(item.valid_price / item.bundle_specification) }}/{{ item.unit }} {{ itemCurrency }}{{ item.invalid_price }} {{itemDiscount}}
{{ itemCurrency }}{{ item.valid_price }}
后结束促销
后开始秒杀 后结束秒杀
{{ getSeckillDesc(item.seckill_data) }}
{{ __( "Pay with Gift Card to get sale price: :itemCurrency:price", { 'itemCurrency' : itemCurrency, 'price' : (item.giftcard_price ? priceFormat(item.giftcard_price) : '0.00') } ) }} ({{ itemCurrency }}{{ priceFormat(item.giftcard_price / item.bundle_specification) }}/{{ item.unit }}) 详情
商品有效期

已下架

当前地址无法配送
已售完

商品描述

展开全部描述
编辑推荐

继承K&R精髓的Go语言编程圣经,《C程序设计语言》的作者Kernighan教授与谷歌Go开发团队核心成员Donovan联合编写。

凝聚大师毕生造诣,融合Go开发团队智慧,经典与权*的碰撞,打造Go语言编程圣经。

尽得《C程序设计语言》的精髓,简洁实用,字字珠玑,学习Go语言程序设计的权*指南。

内容简介

Go语言是谷歌推出的一种全新的C语言风格的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性,提高编程效率,适合开发大型软件,有望成为主流的编程语言。本书由《C程序设计语言》的作者Kernighan和谷歌公司Go团队合作编写而成,是关于Go语言编程的著作。

目录

第1章综述 1
1.1Hello,World 1
1.2命令行参数 4
1.3查找重复行 8
1.4GIF动画 13
1.5获取一个URL 15
1.6并发获取多个URL 17
1.7实现一个Web服务器 19
1.8杂项 23
第2章程序结构 27
2.1名字 27
2.2声明 28
2.3变量 30
2.4赋值 36
2.5类型声明 39
2.6包和文件 41
2.7作用域 45
第3章基本数据类型 51
3.1整数 51
3.2浮点数 56
3.3复数 61
3.4布尔量 63
3.5字符串 64
3.6常量 75
第4章复合类型 81
4.1数组 81
4.2切片 84
4.3键值对 93
4.4结构体 99
4.5JSON 107
4.6文本和HTML模板 113
第5章函数 119
5.1函数声明 119
5.2递归 121
5.3多返回值 124
5.4错误 127
5.5作为值的函数 132
5.6匿名函数 135
5.7变参函数 142
5.8延后函数调用 143
5.9崩溃 148
5.10恢复 151
第6章方法 155
6.1方法声明 155
6.2带有指针接收器的方法 158
6.3包含嵌入结构体的复合类型 161
6.4作为值和表达式的方法 164
6.5示例:位向量类型 165
6.6封装 168
第7章接口 171
7.1作为规约的接口 171
7.2接口类型 174
7.3接口约定的达成 175
7.4使用flag.Value进行标志位分析 179
7.5作为值的接口 181
7.6使用sort.Interface进行排序 186
7.7http.Handler接口 191
7.8错误接口 196
7.9示例:表达式评估器 197
7.10类型断言 205
7.11使用类型断言分辨错误 206
7.12使用接口类型断言查询行为 208
7.13按类型的程序分支 210
7.14示例:基于标记符号的XML解码 213
7.15几句建议 216
第8章goroutine和信道 217
8.1goroutine 217
8.2示例:并发时钟服务器 219
8.3示例:并发回声服务器 222
8.4信道 225
8.5并行循环 234
8.6示例:并发Web爬虫 239
8.7使用select实现多工 244
8.8示例:并发目录遍历 247
8.9取消执行 251
8.10示例:聊天服务器 253
第9章使用共享变量实现并发 257
9.1竞险 257
9.2互斥量:sync.Mutex 262
9.3读写互斥量:sync.RWMutex 266
9.4内存同步 267
9.5缓式初始化:sync.Once 268
9.6竞险检测器 271
9.7示例:并发无阻塞式高速缓存 272
9.8goroutine和线程 280
第10章包和go工具 283
10.1概述 283
10.2导入路径 284
10.3包声明 285
10.4导入声明 285
10.5空导入 286
10.6包和命名 289
10.7go工具 290
第11章测试 301
11.1go test工具 302
11.2测试函数 302
11.3覆盖率 318
11.4性能基准函数 321
11.5性能剖析 323
11.6示例函数 326
第12章反射 329
12.1为什么会引入反射概念 329
12.2reflect.Type和reflect.Value 330
12.3递归值输出Display 333
12.4示例:对S-表达式编码 338
12.5使用reflect.Value给变量设置值 341
12.6示例:对S-表达式解码 344
12.7访问结构体域标签 348
12.8列出类型的方法 351
12.9几句忠告 352
第13章低阶程序设计 353
13.1unsafe.Sizeof、Alignof和Offsetof 354
13.2unsafe.Pointer 356
13.3示例:深等价 358
13.4使用cgo调用C代码 361
13.5再来几句忠告 366
1. Tutoria 1
1.1. Hello, World1
1.2.?Command?L?ineArguments?4
1.3.?FindingDup?lic?ateLines?8
1.4.?Animated?GIFs?13
1.5.?FetchingaURL?15
1.6.?FetchingURLs?Con?cur?rently17
1.7.?AWe?bServer?19
1.8.?Loose?End?s232.?
2.?ProgramStr?ucture27
2.1.?Names?27
2.2.?Declarat?ions?28
2.3.?Var?iables?30
2.4.?Assig?nments?36
2.5.?Typ?eDecl?arat?ions?39
2.6.?Packages?andFiles?41
2.7.?Scope?45
3.?Basic?Data?Typ?es51
3.1.?Int?egers?51
3.2.?Float?ing?Point?Numbers?56
3.3.?Complex?Numbers?61
3.4.?Boole?ans63
3.5.?Str?ings64
3.6.?Con?stants75
4.?Com?positeTyp?es81
4.1.?Arrays?81
4.2.?Slices?84
4.3.?Maps?93
4.4.?Str?ucts99
4.5.?JSON107
4.6.?Text?andHTMLTempl?ates113
5.?Func?tions?119
5.1.?FunctionDeclarat?ions?119
5.2.?Rec?ursio 121
5.3..MultipleReturn Values.124
5.4..Errors 127
5.5..FunctionValues.132
5.6..Anonymous Functions.135
5.7..Variadic.Functions.142
5.8..Deferred.FunctionCalls 143
5.9..Panic.148
5.10..Recover 151
6..Methods 155
6.1..Method.Declarations.155
6.2..MethodswithaPointerReceiver 158
6.3..ComposingTypesby.Struct.Embedding 161
6.4..Method.Values.andExpressions.164
6.5..Example:.Bit.Vector.Type 165
6.6..Encapsulation 168
7..Interfaces 171
7.1..Interfaces.as.Contracts 171
7.2..Interface.Types 174
7.3..Interface.Satisfaction 175
7.4..ParsingFlags.withflag.Value 179
7.5..Interface.Values.181
7.6..Sortingwithsort.Interface 186
7.7..The http.Handler Interface.191
7.8..The error Interface.196
7.9..Example:.ExpressionEvaluator 197
7.10..Type Assertions.205
7.11..DiscriminatingErrorswith.TypeAssertions.206
7.12..QueryingBehaviorswith.Interface.TypeAssertions.208
7.13..Type Switches 210
7.14..Example:.Token-Based.XML.Decoding 213
7.15..AFew Words.ofAdvice.216
8..Goroutines.and.Channels.217
8.1..Goroutines 217
8.2..Example:.ConcurrentClockServer.219
8.3..Example:.ConcurrentEcho Server.222
8.4..Channels 225
8.5..Looping.inParallel 234
8.6..Example:.ConcurrentWeb.Crawler 239
8.7..Multiplexingwithselect 244
8.8..Example:.ConcurrentDirectoryTraversal 247
8.9..Cancellation 251
8.10..Example:.ChatSer.ver.253
9..Concurrency.withShared.Vari.ables 257
9.1..Race.Con.dit.ion.s 257
9.2..Mut.ual.Exc.lusion:sync.Mutex 262
9.3..Read/Write.Mut.exes:sync.RWMutex 266
9.4..Memor.ySy.nchro.nizat.ion 267
9.5..Lazy.Initializat.ion:sync.Once 268
9.6..TheRace.Detec.tor.271
9.7..Example:.Con.cur.rentNon-Blo.cking.Cache.272
9.8..Goroutinesand.Threads.280
10..Pack.ages and.the.GoTool 283
10.1..Int.roduc.tion 283
10.2..Imp.ort.Pat.hs 284
10.3..ThePackageDeclarat.ion 285
10.4..Imp.ort.Declarat.ions.285
10.5..Blank.Imp.orts 286
10.6..Packages.andNaming 289
10.7..TheGoTool 290
11..Testing.301
11.1..The go.test To.ol 302
11.2. Test Func.tions.302
11.3..Cov.erage 318
11.4. Benchmark Func.tions.321
11.5..Pro.ling 323
11.6. Example Func.tions.326
12..Re.ecti.on 329
12.1..Why.Re.ec.tion? 329
12.2. reflect.Type and reflect.Value 330
12.3. Display,aRec.ursiveValue.Print.er 333
12.4..Example:.Enco.dingS-E.xpressions.338
12.5..Setting.Var.iables.wit.hreflect.Value 341
12.6..Example:.DecodingS-E.xpressions.344
12.7..AccessingStr.uct.Field.Tags.348
12.8..Displaying.the.Met.hodsofaTyp.e 351
12.9..AWo.rdofCaution.352
13..Low-L.evel.Pro.gramming 353
13.1. unsafe.Sizeof, Alignof,and Offsetof 354
13.2. unsafe.Pointer 356
13.3..Example:.DeepEquivalence.358
13.4..Cal.lingCCodewit.hcgo 361
13.5..Another.WordofCaution.366
前言/序言

“Go是一种开放源代码的程序设计语言,它意在使得人们能够方便地构建简单、可靠、高效的软件。”(来自Go官网golang.org)Go形成构想是在2007年9月,并于2009年11月发布,其发明人是Robert Griesemer、Rob Pike和Ken Thompson,这几位都任职于Google。该语言及其配套工具集意在使得编译和执行都能够富有表达力和效率,而且使得程序员能够轻松写出可靠、健壮的程序。
Go和C从表面上看起来相似,而且和C一样,它也是一种专业程序员使用的工具,兼有事半功倍之效。但是Go远不止是C的一种升级版本。它从多种其他语言中借用和改造了不少好的思想,还避开了那些导致复杂和脆弱的语言特性。它为并发提供的设施是全新的、高效的,它实现数据抽象和面向对象的途径是极其灵活的。它还提供了自动化的内存管理,或称为垃圾收集。
Go特别适用于构建基础设施类软件(如网络服务器),以及程序员使用的工具和系统等。但它的的确确是一种通用语言,而且在诸多领域(如图像处理、移动应用和机器学习)中都能发现它的身影。它在很多场合下被用于替换无类型的脚本语言,这是由于它平衡了表达力和安全性:Go程序通常比动态语言程序运行速度要快,遭遇意料之外的类型错误而导致的崩溃更是少得多。
Go是个开源项目,所以其编译器、库和工具的源代码是所有人皆可免费取得的。来自全世界的社区都在积极地向这个项目贡献代码。Go的运行环境包括类UNIX系统—Linux、FreeBSD、OpenBSD和Mac OS X,还有Plan 9和Microsoft Windows。只要在这些环境之一中写了一个程序,那么基本上不加修改就可以运行在其他环境中。
本书旨在帮助你立刻开始使用Go,以及良好地掌握这门语言,并充分地利用Go的语言特性和标准库来撰写清晰的、符合习惯用法的、高效的程序。
Go的起源和生物学物种一样,成功的语言会繁衍后代,这些后代语言会从它们的祖先那里汲取各种优点;有时候,语言间的混血会产生异常强大的力量;在一些罕见情况下,某个重大的语言特性也可能凭空出现而并无先例。通过考察语言间的影响,我们可以学得不少知识,比如语言为什么会变成这个样子,以及它适配过哪些环境,等等。
下图展示了更早出现的程序设计语言对Go产生的最重要影响。
Go有时会被称为“类C语言”或“21世纪的C”。从C中,Go继承了表达式语法、控制流语句、基本数据类型、按值调用的形参传递、指针,但比这些更重要的是,继承了C所强调的程序要编译成高效的机器码,并自然地与所处的操作系统提供的抽象机制相配合。
可是,Go的家谱中还有其他祖先。产生主要影响的是来自Niklaus Wirth设计的、以Pascal为发端的一个语言支流。Modula-2启发了包概念。Oberon消除了模块接口文件和模块实现文件的区隔。Oberon-2影响了包、导入和声明语法。Object Oberon则提供了方法声明语法。
另一支Go的世系祖先,也是使得Go相对于当下的程序设计显得卓然不群者,是一族名不见经传的、在贝尔实验室开发的研究用语言。这些语言都受到了Tony Hoare于1978年发表的关于并发性基础的开创性论文所提出的通信顺序进程(Communicating Sequential Process,CSP)的启发。在CSP中,程序就是一组无共享状态进程的并行组合,进程间的通信和同步采用信道完成。不过,Hoare提出的CSP是一种形式语言,仅用以描述并发性的基本概念,并不是一种用来撰写可执行程序的程序设计语言。
Rob Pike等人开始动手做一些实验,尝试把CSP实现为真正的语言。第一种这样的语言称为Squeak(“和鼠类沟通的语言”),它是一种用以处理鼠标和键盘事件的语言。紧接着它的是Newsqueak,它带来的是类C的语句和表达式语法,以及类Pascal的类型记法。它是一种纯粹的函数式语言,带有垃圾收集,同样也以管理键盘、鼠标和窗口事件为目标。信道成了一等值(first-class value),它可以动态创建并采用变量存储。
Plan 9操作系统将这些思想都纳入了一种称为Alef的语言。Alef尝试将Newsqueak改造成一种可用的系统级程序设计语言,但垃圾收集的缺失使得它在处理并发性时太过痛苦了。
Go中的其他结构也会在这里或那里显示出某些并非来自祖先的基因。例如,iota多多少少有点APL的影子,而嵌套函数的词法作用域则来自Scheme(以及由之而来的大部分语言)。在Go语言中,也可以发现全新的变异。Go的创新性的切片为动态数组提供了高效的随机访问的同时,也允许旧式链表的复杂共享机制。还有,defer语句也是Go中新引入的。
Go项目所有的程序设计语言都反映了其发明者的程序设计哲学,这其中往往有相当大的一部分是对于此前的语言已知缺点的应对措施。Go这个项目也是诞生于挫败感之中的,这种挫败感来源于Google的若干遭遇了复杂性爆炸性增长的软件系统。(而这个问题绝非Google所独有的。)“复杂性是以乘积方式增长的。”Rob Pike如是说。为了修复某个问题,一点点地将系统的某个部分变得更加复杂,这不可避免地也给其他部分增加了复杂性。在不断要求增加系统功能和选项以及配置,还要快速发布的压力之下,简单性往往被忽视了—尽管长期来看,简单性才是好软件的不二法门。
要实现简单性,就要求在项目的一开始就将思想浓缩至本质,并在项目的整个生命期多保持一些自律,认识到哪些变化是好的,哪些是坏的或致命的。只要投入足够的努力,好的变化就既可以实现目的,又能够不损害软件设计上的Fred Brooks所谓的“概念完整性”。坏的变化就做不到这一点,而致命的变化则会牺牲“简单性”而去换得其浅薄的兄弟概念—“方便性”。但是,只有通过设计上的简单性,系统才能在增长过程中保持稳定、安全和自洽。
Go项目不仅仅包括语言本身、它的工具和标准库,还有决不能忽视的一点,就是它保持极端简单性的行为文化。在高级语言中,Go出现得较晚,因而有一定后发优势,它的基础部分实现得不错:有垃圾收集、包系统、一等函数、词法作用域、系统调用接口,还有不可变的、默认用UTF-8编码的字符串。但相对来说,它的语言特性不多,而且不太会增加新特性了。比如说,它没有隐式数值类型强制转换,没有构造或析构函数,没有运算符重载,没有形参默认值,没有继承,没有泛型,没有异常,没有宏,没有函数注记,没有线程局部存储。这门语言成熟而稳定,并且保证兼容更早版本:在旧版本的Go语言中写的程序,可以在新版本的编译器和标准库下编译和运行。
Go的类型系统足可以使程序员避免在动态语言中会无意犯下的绝大多数错误,但相对而言,它在带类型的语言中又算是类型系统比较简单的。其实现手法有时候会导致类型框架林立却彼此孤立的“无类型”程序设计风格,并且Go程序员不会在类型方面走到C++或Haskell程序员的那一步—重度地表达类型安全性作为语言具备类型基础的证据。但在实际工作中,Go却能为程序员提供具备相当强类型的系统才能实现的安全性和运行时性能,而不让程序员承担这种系统的复杂性。
Go提倡充分利用当代计算机系统设计,尤其强调局部性的重要。其内建数据类型和大多数库数据结构都经过仔细设计,力求以自然方式工作,而不要求显式的初始化或隐式的构造函数。这么一来,隐藏在代码中的内存分配和内存写入就大大减少了。Go中的聚合类型(结构体和数组)都是以直接方式持有其元素,需要更少的存储以及比使用间接域的语言还少的分配动作和间接指针。由于现代计算机都是并行工作的,正如前面提到的那样,Go有着基于CSP的并行特性。Go还提供了变长栈来运行其轻量级线程,或称为goroutine。这个栈初始化时非常小,所以创建一个goroutine的成本极低,创建100万个也完全可以接受。
Go标准库常常被称作“语言自带电池”,它提供了清晰的构件,以及用于I/O、文本处理、图像、加解密、网络、分布式应用的API,而且对许多标准文件格式和协议都提供了支持。Go的库和工具充分地尊重惯例,减少了配置和解释的需要,从而简化了程序逻辑,提高了多种多样的Go程序之间的相似性,使得它更容易学习和掌握。采用go工具构建的项目,仅使用文件和标识符的名字(在极少情况下使用特殊注释),就可以推断出一个项目使用的所有库、可执行文件、测试、性能基准、示例、平台相关变体,以及文档。Go的源代码中就包含了构建的规格说明。
全书组织我们假定你用过一两种其他语言编过程序,可能是像C、C++或Java那样的编译型语言,也可能是像Python、Ruby或JavaScript那样的解释型语言,所以我们不会像对一个没有任何基础的初学者那样事无巨细地讲述所有事。表面上的语法大体雷同,变量、常量、表达式、控制流和函数也一样。
第1章是Go的基础结构的综述,通过十几个完成日常任务(包括读写文件、格式化文本、创建图像,以及在Internet客户端和服务器之间通信)的程序来介绍这门语言。
第2章讲述Go程序的组成元素—声明、变量、新类型、包和文件,以及作用域。第3章讨论数值、布尔量、字符串、常量,还解释如何处理Unicode。第4章描述组合类型,即使用简单类型构造的类型,形式有数组、键值对、结构体,还有切片这种Go中动态表的实现。第5章的内容是函数,另外还讨论了错误处理、崩溃和恢复,以及defer语句。
可以看出,第1章到第5章是基础性的,其内容是任何命令式语言都有的。Go的语法和风格可能与其他语言有所不同,但大多数程序员都能很快掌握。余下的章节所关注的则是Go语言中与惯常做法有一定区别的内容,包括方法、接口、并发、包、测试和反射。
Go以一种不同寻常的方式来诠释面向对象程序设计。它没有类继承,甚至没有类。较复杂的对象行为是通过较简单的对象组合而非继承完成的。方法可以关联到任何用户自定义的类型,而不一定是结构体。具体类型和抽象类型(即接口)之间的关系是隐式的,所以一个具体类型可能会满足该类型设计者没有意识到其存在的接口。方法在第6章讲述,接口在第7章讲述。
第8章内容是Go的并发性处理途径,它基于CSP思想,采用goroutine和信道实现。第9章则讨论并发性中较传统的基于共享变量的一些方面的话题。
第10章讨论包,也就是组织库的机制。本章也说明如何高效地利用go工具,仅仅这个工具,就提供了编译、测试、性能基准测定、程序格式化、文档,以及完成许多其他任务的功能。
第11章讨论测试,在这里Go采取了显著的轻量级途径,避免了重重抽象的框架,转而使用简单的库和工具。测试库提供了一个基础,在其之上如有必要就可以构建更复杂的抽象了。
第12章讨论反射,即程序在执行期间考察自身表示的能力。反射是一种强大的工具,不过得小心使用它,本章通过演示如何用它来实现某些重要的Go库,解释了如何找到适当的平衡。第13章解释低阶程序设计的细节,运用unsafe包来绕过Go的类型系统,以及什么时候这样做是合适的。
每章都配以一定数量的练习,你可以用来测试对Go的理解,或是探索对书中示例的扩展和变形。
除了最简单的那些以外,所有书中的示例代码都可以从位于gopl.io的公开Git仓库下载。每个示例由其包的导入路径识别,从而能够方便地使用go get命令获取、构建和安装。你需要选取一个目录作为你的Go工作空间,并将GOPATH环境变量指向之。在必要时,go工具会创建该目录。例如:
欲运行这些例子,你至少需要使用1.5版本的Go语言。
如果你的计算机上的go工具太旧或是缺失,请按https://golang.org/doc/install的指令操作。
更多信息来源关于Go的更多信息,最好的来源就是Go的官方网站:https://golang.org,它上面列出了文档供读者访问,包括Go程序设计语言规范、标准包,诸如此类。它上面还列出语言综述,指导如何撰写Go程序,以及如何撰写好的Go程序,还有范围广泛的在线文本和视频资源,这些都是对本书的有价值的补充。位于blog.golang.org的Go博客发表的是关于Go的最好文章,以及该语言当下状态、未来计划、会议报告,还有范围广泛的Go相关话题的深度解读。
Go官网在线访问的一个最有用的方面(这也是纸质书的一个令人遗憾的限制),就是它提供了从描述Go程序的网页上直接运行Go程序的能力。这种功能由位于play.golang.org的Go训练场提供,也有嵌入其他页面的,比如位于golang.org的首页,或是由godoc工具提供的文档页面。
训练场为执行简单的实验,撰写短小的程序来检验自己对语法、语义和库包的理解提供了方便,它在很多方面取代了其他语言中的读取–求值–输出循环(Read-Eval-Print Loop,REPL)。它的永久URL对于共享使用Go写成的小段代码、报告缺陷或提出建议都是很有用的。
在训练场的基础之上,位于tour.golang.org的Go综述就是一系列的小型交互式课程,内容是Go语言的基础思想和结构,是整门语言的有序攻略。
训练场和综述的主要缺点在于它只允许导入标准库,还有很多库特性(比如网络库)都出于可操作性或安全原因加以限制了。而要编译和运行每个程序,都要求Internet连接。所以,欲进行更详尽的实验,需要在本机上运行Go程序。幸运的是,下载过程相当直截了当,从golang.org获取Go的分发程序并开始撰写和运行你自己的Go程序,用不了几分钟。
由于Go是个开源项目,你可以从https://golang.org/pkg上在线读取标准库中的任何类型或函数的代码,每个供下载的分发都同样包含这些代码。请使用这些代码来弄明白某些程序的运行原理、回答关于程序细节的问题,也可以用它们来学一学专家是如何写出一流的Go代码的。
致谢来自Go团队的核心成员Rob Pike和Russ Cox仔细通读了初稿数次,他们对于从词句的斟酌到整体结构和组织的建议都极富价值。在准备本书的日语版时,柴田芳树所做的贡献大大超过了他负担的义务,他的火眼金睛发现了大量英语文本中的不一致性,以及代码中的错误。我们向Brian Goetz、Corey Kosak、Arnold Robbins、Josh Bleecher Snyder以及Peter Weinberger对全书初稿所进行的彻底审查和批评建议深表敬意。
我们感激Sameer Ajmani、Ittai Balaban、David Crawshaw、Billy Donohue、Jonathan Feinberg、Andrew Gerrand、Robert Griesemer、John Linderman、Minux Ma、Bryan Mills、Bala Natarajan、Cosmos Nicolaou、Paul Staniforth、Nigel Tao以及Howard Trickey提供的诸多有用建议。 我们也感谢David Brailsford和Raph Levien的排版建议。
我们的Addison-Wesley编辑Greg Doench最初催生了本书,而且一直不断地给予帮助。Addison-Wesley的制作团队—John Fuller、Dayna Isley、Julie Nahil、Chuti Prasertsith以及Barbara Wood—非常杰出,作者得到了一流的支持。
Alan Donovan想要感谢Google的Sameer Ajmani、Chris Demetriou、Walt Drummond以及Reid Tatge让他有时间来写作这本书,还有Stephen Donovan的建议和及时的鼓励。最重要的是他的妻子Leila Kazemi,她为写作项目提供了毫不犹豫的热情和毫不动摇的支持,即使写作造成了很多家庭生活的分心和缺席。
Brian Kernighan对他的朋友和同事深表谢意,他们对Kernighan花费了很长时间才达成对语言的理解表示了耐心和理解。尤其是他的妻子Meg,她为Kernighan的写作以及太多的其他事务提供了不间断的支持。
纽约2015年10月

规格参数

品牌 京东图书
品牌属地 中国
ISBN 9787111526285
著者 [美]艾伦A.A.多诺万,等
出版社 机械工业出版社
印刷时间 2016-01-01
用纸 胶版纸
包装 平装
出版时间 2016-01-01
页数 366
版次 1

免责声明

产品价格、包装、规格等信息如有调整,恕不另行通知。我们尽量做到及时更新产品信息,但请以收到实物为准。使用产品前,请始终阅读产品随附的标签、警告及说明。

查看详情
加入收藏
{{ $isZh ? coupon.coupon_name_sub : coupon.coupon_ename_sub | formatCurrency }}
{{__("Buy Directly")}} {{ itemCurrency }}{{ item.directly_price }}
数量
{{ quantity }}
{{ instockMsg }}
{{ limitText }}
{{buttonTypePin == 3 ? __("Scan to view more PinGo") : __("Scan to start")}}
由 京东图书 销售
送至
{{ __("Ship to United States only") }}
满$69免运费
正品保证

已加入购物车

继续逛逛

为你推荐

{{ item.brand_name }}

{{ item.item_name }}

{{ item.currency }}{{ item.market_price }}

{{ item.currency }}{{ item.unit_price }}

{{ item.currency }}{{ item.unit_price }}

优惠券

{{ coupon.coupon_name_new | formatCurrency }}
领取 已领取 已领完
{{ getCouponDescStr(coupon) }}
{{ coupon.use_time_desc }}
即将过期: {{ formatTime(coupon.use_end_time) }}

分享给好友

取消

亚米礼卡专享价

使用礼卡支付即可获得礼卡专享价

规则说明

礼卡专享价是部分商品拥有的特殊优惠价格;

购买礼卡专享价商品时,若在结算时使用电子礼卡抵扣支付,且礼卡余额足够支付订单中所有礼卡专享价商品的专享价总和,则可以启用礼卡专享价;

不使用礼卡支付,或礼卡余额不满足上一条所述要求时,将无法启用礼卡专享价,按照普通售价计算,但您仍然可以购买这些商品;

在购买礼卡专享价商品时,若余额不足,可以在购物车或结算页中点击“充值”按钮对礼卡进行购买和充值;

商品若拥有礼卡专享价,会显示“专享”的特殊价格标记;

如有疑问,请随时联系客服;

礼卡专享价相关规则最终解释权归亚米所有。

由 亚米 销售

服务保障

Yami 满$49免运费
Yami 无忧退换
Yami 从美国发货

配送信息

  • 美国

    标准配送 $5.99(不包含阿拉斯加,夏威夷),最终价满$49免运费

    本地配送$5.99(加州,纽约州,新泽西,麻省和宾夕法尼亚,以上州部分地区);最终价满$49免运费

    两日达(包含阿拉斯加夏威夷)运费$19.99起

退换政策

亚米网希望为我们的客户提供最优秀的售后服务,让所有人都能放心在亚米购物。亚米自营商品在满足退换货条件的情况下,可在收到包裹的30天之内退换商品(食品因商品质量问题7天内可退换;为了确保每位客户都能获得安全和高质量的商品,对于美妆类产品,一经开封或使用即不提供退款或退货服务,质量问题除外;其他特殊商品需联系客服咨询)。
感谢您的理解和支持。

查看详情

由 亚米 销售

亚米电子礼品卡使用规则

若购买时选择自动充值,订单完成后礼卡将自动充值到您的账户中;

若购买时选择发送邮件,订单完成后系统将自动发送卡号和密码到您填写的邮箱;

发送邮件时,任何用户均可使用邮件中的卡号密码进行礼卡充值,请妥善保管邮件信息。

如接收邮件遇到问题,请联系客服处理;

发送邮件时,若礼卡没有被兑换,可以补发邮件。若已经被其他用户兑换,则无法补偿;

亚米网电子礼卡可用于购买自营或第三方商品;

亚米网电子礼卡没有有效期限制,长期有效;

亚米网电子礼卡的金额,可分多次使用;

亚米网电子礼卡业务规则,最终解释权归亚米网所有。

退换政策

已消费的电子礼卡不支持退款。

京东图书 销售

服务保障

Yami 满$49免运费
Yami 最优售后
Yami 美国本土发货

配送信息

  • 美国

    标准配送 $5.99(不包含阿拉斯加,夏威夷),最终价满$49免运费

    本地配送$5.99(加州,纽约州,新泽西,麻省和宾夕法尼亚,以上州部分地区);最终价满$49免运费

    两日达(包含阿拉斯加夏威夷)运费$19.99起

退换政策

提供30天内退还保障。产品需全新未使用原包装内,并附有购买凭据。产品质量问题、或错发漏发等,由商家造成的失误,将进行补发,或退款处理。其它原因需退货费用由客户自行承担。

由 京东图书 销售

服务保障

Yami 跨店满$69免运费
Yami 30天退换保障

亚米-中国集运仓

由亚米从中国精选并集合各大优秀店铺的商品至亚米中国整合中心,合并包裹后将一次合包跨国邮寄至您的地址。跨店铺包邮门槛低至$69。您将在多商家集合提供的广泛选品中选购商品,轻松享受跨店铺包邮后的低邮费。

退换政策

提供30天内退换保障。产品需在全新未使用的原包装内,并附有购买凭据。产品质量问题、错发、或漏发等由商家造成的失误,将进行退款处理。其它原因造成的退换货邮费客户将需要自行承担。由于所有商品均长途跋涉,偶有简易外包压磨等但不涉及内部质量问题者,不予退换。

配送信息

亚米中国集运 Consolidated Shipping 运费$9.99(订单满$69 包邮)

下单后2个工作日中国商家发货,所有包裹抵达亚米中国整合中心(除特别情况及中国境内个别法定节假日外)会合并包裹后通过UPS发往美国。UPS从中国发货后到美国境内的平均时间为10个工作日左右,根据直发单号可随时跟踪查询。受疫情影响,目前物流可能延迟5天左右。包裹需要客人签收。如未签收,客人须承担包裹丢失风险。

由 京东图书 销售

服务保障

满$69免运费
正品保证

配送信息

Yami Consolidated Shipping 运费$9.99(订单满$69包邮)


下单后1-2个工作日内发货。 物流时效预计7-15个工作日。 如遇清关,交货时间将延长3-7天。 最终收货日期以邮政公司信息为准。

积分规则

不参加任何折扣活动以及亚米会员积分制度。

退换政策

提供30天内退还保障。产品需全新未使用原包装内,并附有购买凭据。产品质量问题、或错发漏发等,由商家造成的失误,将进行补发,或退款处理。其它原因需退货费用由客户自行承担。

Yami

下载亚米应用

返回顶部

为你推荐

品牌故事

京东图书

为您推荐

Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折

评论{{'('+ commentList.posts_count + ')'}}

分享你的感受,帮助更多用户做出选择。

写评论
{{ totalRating }} 写评论
  • {{i}}星

    {{i}}星

    {{ parseInt(commentRatingList[i]) }}%

Yami Yami
{{ comment.user_name }}

{{ showTranslate(comment) }}收起

{{ strLimit(comment,800) }}查看全部

Show Original

{{ comment.content }}

Yami
查看更多

{{ formatTime(comment.in_dtm) }} 已购买 {{groupData}}

{{ comment.likes_count }} {{ comment.likes_count }} {{ comment.reply_count }} {{comment.in_user==uid ? __('Delete') : __('Report')}}
Yami Yami
{{ comment.user_name }}

{{ showTranslate(comment) }}收起

{{ strLimit(comment,800) }}查看全部

Show Original

{{ comment.content }}

Yami
查看更多

{{ formatTime(comment.in_dtm) }} 已购买 {{groupData}}

{{ comment.likes_count }} {{ comment.likes_count }} {{ comment.reply_count }} {{comment.in_user==uid ? __('Delete') : __('Report')}}

暂无符合条件的评论

评论详情

Yami Yami

{{ showTranslate(commentDetails) }}收起

{{ strLimit(commentDetails,800) }}查看全部

Show Original

{{ commentDetails.content }}

Yami
查看更多

{{ formatTime(commentDetails.in_dtm) }} 已购买 {{groupData}}

{{ commentDetails.likes_count }} {{ commentDetails.likes_count }} {{ commentDetails.reply_count }} {{commentDetails.in_user==uid ? __('Delete') : __('Report')}}

请输入内容

回复{{'(' + replyList.length + ')'}}

Yami Yami

{{ showTranslate(reply) }}收起

{{ strLimit(reply,800) }}查看全部

Show Original

{{ reply.reply_content }}

{{ formatTime(reply.reply_in_dtm) }}

{{ reply.reply_likes_count }} {{ reply.reply_likes_count }} {{ reply.reply_reply_count }} {{reply.reply_in_user==uid ? __('Delete') : __('Report')}}

请输入内容

取消

End

发表评论
商品评分

请输入评论

  • 一个好的昵称,会让你的评论更受欢迎!
  • 修改了这里的昵称,个人资料中的昵称也将被修改。
感谢你的评论
你的好评可以帮助我们的社区发现更好的亚洲商品。

举报

取消

确认删除该评论吗?

取消

历史浏览

品牌故事

京东图书