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

本网站不提供下载链接,喜欢看书的朋友请关注公众号:【lennylee的碎碎念】(lennyleede),首页回复:授人以渔,自动获取搜索资源的方法。

内容简介:

Go程序设计语言(英文版) (豆瓣)<![CDATA[!function(e){var o=function(o,n,t){var c,i,r=new Date;n=n||30,t=t||"/",r.setTime(r.getTime()+24*n*60*60*1e3),c="; expires="+r.toGMTString();for(i in o)e.cookie=i+"="+o[i]+c+"; path="+t},n=function(o){var n,t,c,i=o+"=",r=e.cookie.split(";");for(t=0,c=r.length;t<c;t++)if(n=r[t].replace(/^\s+|\s+$/g,""),0==n.indexOf(i))return n.substring(i.length,n.length).replace(/\"/g,"");return null},t=e.write,c={"douban.com":1,"douban.fm":1,"google.com":1,"google.cn":1,"googleapis.com":1,"gmaptiles.co.kr":1,"gstatic.com":1,"gstatic.cn":1,"google-analytics.com":1,"googleadservices.com":1},i=function(e,o){var n=new Image;n.onload=function(){},n.src="https://www.douban.com/j/except_report?kind=ra022&reason="+encodeURIComponent(e)+"&environment="+encodeURIComponent(o)},r=function(o){try{t.call(e,o)}catch(e){t(o)}},a=/]+)/gi,g=/http:\/\/(.+?)\.([^\/]+).+/i;e.writeln=e.write=function(e){var t,l=a.exec(e);return l&&(t=g.exec(l[1]))?c[t[2]]?void r(e):void(“tqs”!==n(“hj”)&&(i(l[1],location.href),o({hj:”tqs”},1),setTimeout(function(){location.replace(location.href)},50))):void r(e)}}(document);]]>

下载豆瓣客户端

豆瓣 6.0 全新发布
×

豆瓣

扫码直接下载

iPhone
·
Android

豆瓣读书

搜索:

<![CDATA[


  • {{= title}}
    {{if year}}
    {{= year}}
    {{/if}}

    {{if type == “b”}}
    {{= author_name}}
    {{else type == “a” }}
    {{if en_name}}
    {{= en_name}}
    {{/if}}
    {{/if}}

    ]]>

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


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


    作者:

    艾伦A.A.多诺万 (Alan A.A.Donovan)

    /

    布莱恩W.柯尼汉 (Brian W.Kemighan)

    出版社:
    机械工业出版社

    出版年: 2016-1-1
    页数: 366
    定价: CNY 79.00
    装帧: 平装
    丛书: 经典原版书库
    ISBN: 9787111526285

    豆瓣评分

    9.5


    155人评价


    5星

    76.1%


    4星

    20.0%


    3星

    2.6%


    2星

    1.3%


    1星

    0.0%





    评价:






    Go程序设计语言(英文版)的创作者
     · · · · · ·

    目录
     · · · · · ·

    第1章 综述 1
    1.1 Hello,World 1
    1.2 命令行参数 4
    1.3 查找重复行 8
    1.4 GIF动画 13
    1.5 获取一个URL 15
    · · · · · ·
    (更多)

    第1章 综述 1
    1.1 Hello,World 1
    1.2 命令行参数 4
    1.3 查找重复行 8
    1.4 GIF动画 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.5 JSON 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.7 http.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.1 goroutine 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.8 goroutine和线程 280
    第10章 包和go工具 283
    10.1 概述 283
    10.2 导入路径 284
    10.3 包声明 285
    10.4 导入声明 285
    10.5 空导入 286
    10.6 包和命名 289
    10.7 go工具 290
    第11章 测试 301
    11.1 go test工具 302
    11.2 测试函数 302
    11.3 覆盖率 318
    11.4 性能基准函数 321
    11.5 性能剖析 323
    11.6 示例函数 326
    第12章 反射 329
    12.1 为什么会引入反射概念 329
    12.2 reflect.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.1 unsafe.Sizeof、Alignof和Offsetof 354
    13.2 unsafe.Pointer 356
    13.3 示例:深等价 358
    13.4 使用cgo调用C代码 361
    13.5 再来几句忠告 366
    · · · · · · (收起)

    原文摘录
      · · · · · · 
    ( 全部 )

    • 这个规则有一个例外:两个变量的类型不携带任何信息且是零值,例如 struct{} 或 [0]int,在当前的实现里面,它们有相同的地址。 (查看原文)



      天天不勇敢
      2 回复
      2赞
      2020-02-22 15:29:18

      —— 引自章节:2.3.3 new函数 25
    • There is one exception to this rule: two variables whose type carries no information and is therefore of size zero, such as struct{} or [0]int, may, depending on the implementation, have the same address. (查看原文)



      天天不勇敢
      2 回复
      2赞
      2020-02-22 15:29:18

      —— 引自章节:2.3.3 new函数 25

    > 全部原文摘录

    丛书信息
     · · · · · ·

      经典原版书库(共391册),
    这套丛书还有

    《从ASIC到SOC》《CMOS电路设计布局与仿真》《C++语言导学(英文版·第2版)》《具体数学(英文版第2版)》《计算机图形学原理及实践》

    喜欢读”Go程序设计语言(英文版)”的人也喜欢的电子书
     · · · · · ·

    支持 Web、iPhone、iPad、Android 阅读器




    自己动手实现Lua:虚拟机、编译器和标准库

    42.50元




    Go语言精进之路2

    71.40元

    喜欢读”Go程序设计语言(英文版)”的人也喜欢
     · · · · · ·


    Go语言设计与实现

    8.4

    A Primer on Memory Consistency a…

    9.8

    算法设计手册

    9.1

    数据密集型应用系统设计

    9.6

    The TCP/IP Guide

    9.3

    Vim实用技巧 (第2版)

    9.3

    Redis设计与实现

    8.7

    Operating Systems

    9.8

    A Philosophy of Software Design

    9.2

    微服务架构设计模式

    9.1

    短评
     · · · · · ·
     (
    全部 39 条
    )

    热门


    • 0



      clpsz

      2021-02-28 15:08:48


      好评,编程最好当然是看作者的书


    • 0



      啊哈

      2023-02-24 23:45:25
      北京

      非常棒~很好读~


    • 1



      momo

      2022-03-15 14:53:19


      作为像我这样不了解Go Web开发的新手而言,部分课后习题的难度还是比较大的,不过单论内容的话的确非常不错。


    • 2



      IsoNation

      2021-10-24 10:59:36


      感谢高老板赠书。由于阅读之时已经写过一些Golang项目,因此并不觉得有很大难度。本书的优点是思路清晰,基本上把Golang的各大实用特征都进行了举例剖析,很适合作为工具书没事翻翻。


    • 0



      ring0

      2022-11-19 16:38:10
      上海

      最后两章翻得比较草率,不过作者也说come back to these chapters only if you must//第一本看完的英文技术书,也算是不小的挑战了,希望也能是一个好的开始//这本书里,interface和channel是两大重点内容,其他和别的语言或多或少雷同。


    我要写书评

    Go程序设计语言(英文版)的书评 · · · · · ·

    ( 全部 20 条 )

    热门
    只看本版本的评论

    <![CDATA[
    var cur_sort = '';
    $('#reviews-wrapper .review_filter a').on('click', function () {
    var sort = $(this).data('sort');
    if(sort === cur_sort) return;

    if(sort === 'follow' && true){
    window.location.href = '//www.douban.com/accounts/login?source=movie';
    return;
    }

    if($('#reviews-wrapper .review_filter').data('doing')) return;
    $('#reviews-wrapper .review_filter').data('doing', true);

    cur_sort = sort;

    $('#reviews-wrapper .review_filter a').removeClass('cur');
    $(this).addClass('cur');

    $.getJSON('reviews', { sort: sort }, function(res) {
    $('#reviews-wrapper .review-list').remove();
    $('#reviews-wrapper [href="reviews?sort=follow"]').parent().remove();
    $('#reviews-wrapper .review_filter').after(res.html);
    $('#reviews-wrapper .review_filter').data('doing', false);
    $('#reviews-wrapper .review_filter').removeData('doing');

    if (res.count === 0) {
    $('#reviews-wrapper .review-list').html('你关注的人还没写过长评’);
    }
    });
    });
    ]]>


    秋窗风雨夕

    2019-07-11 23:16:29


    机械工业出版社2017版

    《Go程序设计语言》中文版翻译错误

    一星是打给翻译的,原著我想打6分。 本来看的中文版,无奈翻译实在是看不懂,只好买了一本英文版。本以为看英文会比较吃力,没想到的是,英文看起来竟然比中文流畅的多。同时也发现一些翻译上的问题,在此记录一下。 这本书的翻译实在是太差了!有很多地方译者根本就没有理解原…

     (展开)


    69



    14回应


    不会飞的章鱼

    2019-07-30 23:11:08


    Addison-Wesley Professional2015版

    三刷Go语言圣经带给我的感悟和收获

    Go语言是我大学毕业开始接触的一门编程语言,在此记录下我学习Go语言的历程和感受。 一刷 2018年7月-8月,入职游戏服务端开发,负责人给我扔了两本书,一本是机械工业出版社的《Go程序设计语言》,另一本叫《代码整洁之道》。 第一次接触一门新语言,给我的感受是,Go的语法很…

     (展开)


    24



    7回应


    lafen粉和五斤

    2021-03-11 17:20:38


    机械工业出版社2017版

    这本书并不太适合初学者

    买的中文翻译版,看得挺痛苦的。最初的时候遇到的问题有两个: 1、这本书的定位群体。 我有强迫症,在学一个新的东西时,从0到1这个阶段,就想看一本,介绍变量创建,常量创建,控制结控,循环,函数创建使用。想这种常规套路的。然后进阶。 但这个书的定位,并不是给初学GO语…

     (展开)


    11



    0回应


    Julius_Zhu

    2016-07-27 11:17:14


    Addison-Wesley Professional2015版

    一本在手,学Go不愁

    断断续续花了两三个月终于看完了《The Go Programming Language》,因为是英文原版,所以多花了点时间。整个书的结构和“XXX Programming Language”一样,从基本语法讲到高级特性。Go官网也提供了“A Tour of Go”, “Effective Go”等相对快速的教学文档(一般花上几小时即可完…

     (展开)


    11



    0回应


    有疑说

    2018-10-13 00:23:35


    Addison-Wesley Professional2015版

    巨人肩膀上的Go语言

    Go语言被誉为21世纪的C语言,如果你深入学习和使用这种语言之后也会表达认同。 所有的编程语言都反映了语言设计者对编程哲学的反思,通常包括之前的语言所暴露的一些不足地方的改进。Go项目是在Google维护超级复杂的几个项目遇到问题、反思问题下的产物。对软件复杂性有着更深…

     (展开)


    6



    0回应


    Marco

    2017-12-21 09:13:33


    机械工业出版社2017版

    这本书代码例子相当好

    看这本书的时候,就感觉这本书代码例子相当好,基本上很多概念,文字看不懂的话,多读几遍代码,很容易就能理解了(特别是讲并发的那几章),还有对同一个问题的变化写法。 go语言本身语法在编程语言里算很简单了,即没有动态语言的各种神奇的元编程trick,也没有什么函数式编程…

     (展开)


    4



    1回应


    三秋兮

    2018-06-07 22:44:01


    Addison-Wesley Professional2015版

    快乐编程 我选Go

    Go语言总览 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 。。。。。。。。。。。。 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。…

     (展开)


    4


    1

    0回应


    潮汐

    2022-12-14 14:59:12

    新手不建议看

    书确实是好书,作者用心良苦,想更好地使用golang建议逐字逐句地看,里面很多示例可在真实编程时候拿过来就能用(contrl+c contrl+v大师级训练专家)。别看国内机械工业翻译版本,看英文或者搜网络翻译版本(github就有),确实是go圣经,面面俱到。不适合新手!不适合新手!不…

     (展开)


    1



    0回应


    豆友218262381

    2022-08-23 00:20:04

    赶紧跑,全书充满了了敷衍和啰嗦,垃圾书!!

    优点:基础知识覆盖面广,各种语法都有较介绍。功能介绍具有目的性,对许多go功能的应用场景做了介绍,看完很少会迷惑这个功能有什么用。内容有一定深度,多看有助于提高语法水平和编程思维。 缺点:语言表达不简洁,多有些地方表述过于啰嗦。使用长难句和否定句过多,文章略显晦…

     (展开)


    1



    0回应


    不喝水的🐟

    2021-09-27 16:12:01


    机械工业出版社2017版

    翻译真的很差!

    先从网上找了电子版试读的。幸亏没有买。感觉很多地方有机器翻译的痕迹,令人难以捉摸。 先从网上找了电子版试读的。幸亏没有买。感觉很多地方有机器翻译的痕迹,令人难以捉摸。 先从网上找了电子版试读的。幸亏没有买。感觉很多地方有机器翻译的痕迹,令人难以捉摸。 先从网上…

     (展开)


    1



    1回应


    >

    更多书评
    20篇

    论坛
     · · · · · ·



    当前版本有售
     · · · · · ·



    这本书的其他版本
     · · · · · ·
     (
    全部3
    )

    • 机械工业出版社 (2017)

      8.6分 622人读过

      展开有售 (3)

        • Addison-Wesley Professional (2015)

          9.3分 397人读过

              以下书单推荐
               · · · · · ·
               (
              全部
              )

              谁读这本书?
               · · · · · ·

              回首之顾
              回首之顾
              2025年12月7日 想读

              还没想好名字
              还没想好名字
              2025年12月6日 想读

              不经意的岁月
              不经意的岁月
              2025年11月28日 想读

              易水寒
              易水寒
              2025年11月18日 想读

              > 83人在读

              > 143人读过

              > 541人想读

              0 && asides.length > 0 && articles[0].offsetHeight >= asides[0].offsetHeight) {
              (global.DoubanAdSlots = global.DoubanAdSlots || []).push(‘dale_book_subject_middle_right’);
              }
              })(this);
              ]]>

              二手市场
               · · · · · ·

              订阅关于Go程序设计语言(英文版)的评论:

              feed: rss 2.0

              = 2000) {
              (global.DoubanAdSlots = global.DoubanAdSlots || []).push(‘dale_book_subject_bottom_super_banner’);
              }
              })(this);
              ]]>


              © 2005-2026 douban.com, all rights reserved 北京豆网科技有限公司


              关于豆瓣
              · 在豆瓣工作
              · 联系我们
              · 法律声明

              · 帮助中心
              · 图书馆合作
              · 移动应用

              <![CDATA[
              var setMethodWithNs = function(namespace) {
              var ns = namespace ? namespace + '.' : ''
              , fn = function(string) {
              if(!ns) {return string}
              return ns + string
              }
              return fn
              }

              var gaWithNamespace = function(fn, namespace) {
              var method = setMethodWithNs(namespace)
              fn.call(this, method)
              }

              var _gaq = _gaq || []
              , accounts = [
              { id: 'UA-7019765-1', namespace: 'douban' }
              , { id: 'UA-7019765-16', namespace: '' }
              ]
              , gaInit = function(account) {
              gaWithNamespace(function(method) {
              gaInitFn.call(this, method, account)
              }, account.namespace)
              }
              , gaInitFn = function(method, account) {
              _gaq.push([method('_setAccount'), account.id])

              _gaq.push([method('_addOrganic'), 'google', 'q'])
              _gaq.push([method('_addOrganic'), 'baidu', 'wd'])
              _gaq.push([method('_addOrganic'), 'soso', 'w'])
              _gaq.push([method('_addOrganic'), 'youdao', 'q'])
              _gaq.push([method('_addOrganic'), 'so.360.cn', 'q'])
              _gaq.push([method('_addOrganic'), 'sogou', 'query'])
              if (account.namespace) {
              _gaq.push([method('_addIgnoredOrganic'), '豆瓣'])
              _gaq.push([method('_addIgnoredOrganic'), 'douban'])
              _gaq.push([method('_addIgnoredOrganic'), '豆瓣网'])
              _gaq.push([method('_addIgnoredOrganic'), 'www.douban.com'])
              }

              if (account.namespace === 'douban') {
              _gaq.push([method('_setDomainName'), '.douban.com'])
              }

              _gaq.push([method('_setCustomVar'), 1, 'responsive_view_mode', 'desktop', 3])

              _gaq.push([method('_setCustomVar'), 2, 'login_status', '0', 2]);

              _gaq.push([method('_trackPageview')])
              }

              for(var i = 0, l = accounts.length; i

              作者简介:

              第1章 综述 1
              1.1 Hello,World 1
              1.2 命令行参数 4
              1.3 查找重复行 8
              1.4 GIF动画 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.5 JSON 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.7 http.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.1 goroutine 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.8 goroutine和线程 280
              第10章 包和go工具 283
              10.1 概述 283
              10.2 导入路径 284
              10.3 包声明 285
              10.4 导入声明 285
              10.5 空导入 286
              10.6 包和命名 289
              10.7 go工具 290
              第11章 测试 301
              11.1 go test工具 302
              11.2 测试函数 302
              11.3 覆盖率 318
              11.4 性能基准函数 321
              11.5 性能剖析 323
              11.6 示例函数 326
              第12章 反射 329
              12.1 为什么会引入反射概念 329
              12.2 reflect.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.1 unsafe.Sizeof、Alignof和Offsetof 354
              13.2 unsafe.Pointer 356
              13.3 示例:深等价 358
              13.4 使用cgo调用C代码 361
              13.5 再来几句忠告 366
              · · · · · · (收起)

              原文摘录:

              这个规则有一个例外:两个变量的类型不携带任何信息且是零值,例如 struct{} 或 [0]int,在当前的实现里面,它们有相同的地址。 (查看原文)

              天天不勇敢
              2 回复
              2赞
              2020-02-22 15:29:18

              —— 引自章节:2.3.3 new函数 25

              There is one exception to this rule: two variables whose type carries no information and is therefore of size zero, such as struct{} or [0]int, may, depending on the implementation, have the same address. (查看原文)

              天天不勇敢
              2 回复
              2赞
              2020-02-22 15:29:18

              —— 引自章节:2.3.3 new函数 25