目录第1章初识Go语言-2.1.4医名变量22常量222.21.1语言简史.12.2.1字面常量:.221.2语言特性22.2.2常量定义.231.2.1自动垃圾回收·.32.2.3预定义常量:.231.2.2更丰富的内置类型,42.2.4枚举241.2.3函数多返回值.类型2.3-241.2.4错误处理·62.3.1布尔类型,.251.2.5医名函数和闭包...62.3.2整型..251.2.6类型和接口72.3.3浮点型271.2.7并发编程82.3.4复数类型281.2.8反射.92.3.5字符....281.2.9语言交互性..102.3.6字符类型..301.3第一个Go程序...112.3.7数组311.3.1代码解读,.11数组切片2.3.8.32-121.3.2编译环境准备2.3.9..36map1.3.3编译程序12流程控制2.438.. 131.4开发工具选择2.4.1条件语句381.5工程管理- 132.4.2选择语句...39181.6问题追踪和调试2.4.3循环语句...401.6.1打印日志...182.4.4跳转语句:411.6.2GDB调试18函数-.412.51.7如何寻求帮助.-182.5.1函数定义421.7.1邮件列表.- 192.5.2函数调用.421.7.2网站资源,..192.5.3不定参数431.8小结.192.5.4多返回值...45第2章顺序编程.202.5.5医名函数与闭包.452.6错误处理472.1变量202.6.1error接口.472.1.1变量声明·...202.6.2-482.1.2defer变量初始化,.212.6.3panic()和recover()-.*492.1.3变量赋值-21图灵社区会员soooldier(soooldier@live.com)专享尊重版权
目 录 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 17 目 录 第 1 章 初识 Go 语言 . 1 1.1 语言简史 . 1 1.2 语言特性 . 2 1.2.1 自动垃圾回收. 3 1.2.2 更丰富的内置类型. 4 1.2.3 函数多返回值. 5 1.2.4 错误处理 . 6 1.2.5 匿名函数和闭包. 6 1.2.6 类型和接口 . 7 1.2.7 并发编程 . 8 1.2.8 反射 . 9 1.2.9 语言交互性 . 10 1.3 第一个 Go 程序. 11 1.3.1 代码解读 . 11 1.3.2 编译环境准备. 12 1.3.3 编译程序 . 12 1.4 开发工具选择 . 13 1.5 工程管理 . 13 1.6 问题追踪和调试. 18 1.6.1 打印日志 . 18 1.6.2 GDB 调试 . 18 1.7 如何寻求帮助 . 18 1.7.1 邮件列表 . 19 1.7.2 网站资源 . 19 1.8 小结 . 19 第 2 章 顺序编程. 20 2.1 变量 . 20 2.1.1 变量声明 . 20 2.1.2 变量初始化 . 21 2.1.3 变量赋值 . 21 2.1.4 匿名变量 . 22 2.2 常量 . 22 2.2.1 字面常量 . 22 2.2.2 常量定义 . 23 2.2.3 预定义常量 . 23 2.2.4 枚举 . 24 2.3 类型 . 24 2.3.1 布尔类型 . 25 2.3.2 整型 . 25 2.3.3 浮点型 . 27 2.3.4 复数类型 . 28 2.3.5 字符串 . 28 2.3.6 字符类型 . 30 2.3.7 数组 . 31 2.3.8 数组切片 . 32 2.3.9 map . 36 2.4 流程控制 . 38 2.4.1 条件语句 . 38 2.4.2 选择语句 . 39 2.4.3 循环语句 . 40 2.4.4 跳转语句 . 41 2.5 函数 . 41 2.5.1 函数定义 . 42 2.5.2 函数调用 . 42 2.5.3 不定参数 . 43 2.5.4 多返回值 . 45 2.5.5 匿名函数与闭包. 45 2.6 错误处理 . 47 2.6.1 error 接口. 47 2.6.2 defer. 48 2.6.3 panic()和 recover() . 49 图灵社区会员 soooldier(soooldier@live.com) 专享 尊重版权
目录2502.7完整示例4.5.3缓冲机制- 962.7.151..97程序结构4.5.4超时机制2.7.2主程序..514.5.5channel的传递..982.7.3算法实现.544.5.6单向channel.....982.7.4主程序…574.5.7关闭channel-992.7.5594.6-100构建与执行多核并行化2.8小结-614.7出让时间片.1014.8同步-101第3章面向对象编程-62-1014.8.1同步锁类型系统..623.14.8.2全局唯一性操作1023.1.1-- 63为类型添加方法4.9完整示例.1033.1.2.6值语义和引用语义.4.9.1简单IPC框架1053.1.3结构体.674.9.2中央服务器.-1083.2初始化.--684.9.3主程序..1133.3名组合--684.9.4运行程序116可见性3.471小结4.101173.5接口:..71第5章网络编程,--. 1183.5.1.71其他语言的接口3.5.2非侵入式接口...735.1Socket编程.1183.5.3接口赋值-745.1.1Dial()函数..1183.5.4接口查询:..765.1.2ICMP示例程序1193.5.5类型查询。.785.1.3TCP示例程序.1213.5.6接口组合-785.1.4. 122更丰富的网络通信….3.5.7Any类型...-795.2HTTP编程. 124完整示例...795.2.1HTTP客户端..1243.6...3.6.1音乐库.5.2.2HTTP服务端..801303.6.2音乐播放·-825.3RPC编程1323.6.3主程序. 845.3.1Go语言中的RPC支持与3.6.4构建运行.-86处理...·1323.6.5遗留问题865.3.2Gob简介-1343.7小结-875.3.3设计优雅的RPC接口·1345.4JSON处理..135第4章并发编程,-885.4.1编码为JSON格式-1364.1并发基础885.4.2解码JSON数据:-1374.2协程-905.4.3解码未知结构的JSON数据.1384.390goroutine5.4.4JSON的流式读写1404.4并发通信..915.5网站开发1404.5-94channel...-1415.5.1最简单的网站程序4.5.1基本语法--955.5.2net/http包简介.- 1414.5.2-95select5.5.3开发一个简单的相册网站…142图灵社区会员soooldier(soooldier@live.com)专享尊重版权
2 目 录 2.7 完整示例 . 50 2.7.1 程序结构 . 51 2.7.2 主程序 . 51 2.7.3 算法实现 . 54 2.7.4 主程序 . 57 2.7.5 构建与执行 . 59 2.8 小结 . 61 第 3 章 面向对象编程 . 62 3.1 类型系统 . 62 3.1.1 为类型添加方法. 63 3.1.2 值语义和引用语义. 66 3.1.3 结构体 . 67 3.2 初始化 . 68 3.3 匿名组合 . 68 3.4 可见性 . 71 3.5 接口 . 71 3.5.1 其他语言的接口. 71 3.5.2 非侵入式接口 . 73 3.5.3 接口赋值 . 74 3.5.4 接口查询 . 76 3.5.5 类型查询 . 78 3.5.6 接口组合 . 78 3.5.7 Any 类型 . 79 3.6 完整示例 . 79 3.6.1 音乐库 . 80 3.6.2 音乐播放 . 82 3.6.3 主程序 . 84 3.6.4 构建运行 . 86 3.6.5 遗留问题 . 86 3.7 小结 . 87 第 4 章 并发编程. 88 4.1 并发基础 . 88 4.2 协程 . 90 4.3 goroutine . 90 4.4 并发通信 . 91 4.5 channel. 94 4.5.1 基本语法 . 95 4.5.2 select. 95 4.5.3 缓冲机制 . 96 4.5.4 超时机制 . 97 4.5.5 channel 的传递 . 98 4.5.6 单向 channel. 98 4.5.7 关闭 channel. 99 4.6 多核并行化 . 100 4.7 出让时间片 . 101 4.8 同步 . 101 4.8.1 同步锁 . 101 4.8.2 全局唯一性操作. 102 4.9 完整示例 . 103 4.9.1 简单 IPC 框架 . 105 4.9.2 中央服务器 . 108 4.9.3 主程序 . 113 4.9.4 运行程序 . 116 4.10 小结 . 117 第 5 章 网络编程. 118 5.1 Socket 编程. 118 5.1.1 Dial()函数. 118 5.1.2 ICMP 示例程序. 119 5.1.3 TCP 示例程序 . 121 5.1.4 更丰富的网络通信. 122 5.2 HTTP 编程. 124 5.2.1 HTTP 客户端. 124 5.2.2 HTTP 服务端. 130 5.3 RPC 编程. 132 5.3.1 Go 语言中的 RPC 支持与 处理. 132 5.3.2 Gob 简介. 134 5.3.3 设计优雅的 RPC 接口 . 134 5.4 JSON 处理. 135 5.4.1 编码为 JSON 格式 . 136 5.4.2 解码 JSON 数据 . 137 5.4.3 解码未知结构的 JSON 数据 . 138 5.4.4 JSON 的流式读写 . 140 5.5 网站开发 . 140 5.5.1 最简单的网站程序. 141 5.5.2 net/http 包简介 . 141 5.5.3 开发一个简单的相册网站. 142 图灵社区会员 soooldier(soooldier@live.com) 专享 尊重版权
目录35.6小结-1578.2.1语法高亮-1878.2.2编译环境·-187第6章安全编程-158.1888.3Vim6.1数据加密158..189.8.4Eclipse6.2. 158数字签名1928.5Notepad++6.3.. 159数字证书..1928.5.1语法高亮6.4PKI体系1598.5.2编译环境.1926.5Go语言的哈希函数-1598.6 LitelDE1936.6...160加密通信8.7小结1956.6.1加密通信流程.161第9章进阶话题.1966.6.2支持HTTPS的Web服务器.1629.1反射1966.6.3支持HTTPS的文件服务器1659.1.1基本概念.1966.6.4基于SSL/TLS的ECHO程序166..1976.7小结-1699.1.2基本用法9.1.3对结构的反射操作.. 199第7章工程管理-1709.2语言交互性 1997.1Go命令行工具.-1709.2.1类型映射….2007.2代码风格.1729.2.2字符串映射,.201..1727.2.1强制性编码规范9.2..3C程序..2017.2.2、非强制性编码风格建议.1739.2.4函数调用202远程import支持-1757.39.2.5编译Cgo-2037.4.175工程组织9.3203链接符号7.4.1176GOPATH-9.4goroutine机理.2047.4.2目录结构.1769.4.1协程·2047.5文档管理.1779.4.2协程的C语言实现..2057.6工程构建-180..9.4.3..205协程库概述7.7跨平台开发--1809.4.4任务.2087.7.1交叉编译1819.4.5任务调度..2107.7.2Android支持182上下文切换:9.4.6..2117.8单元测试.183..2159.4.7通信机制7.9打包分发-1849.5接口机理.2167.10小结.1849.5.1类型赋值给接口,...2179.5.2接口查询.223第8章开发工具.1869.5.3接口赋值,2248.1选择开发工具-186附录A2258.2187gedit图灵社区会员soooldier(soooldier@live.com)专享尊重版权
目 录 3 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 17 5.6 小结 . 157 第 6 章 安全编程. 158 6.1 数据加密 . 158 6.2 数字签名 . 158 6.3 数字证书 . 159 6.4 PKI 体系. 159 6.5 Go 语言的哈希函数. 159 6.6 加密通信 . 160 6.6.1 加密通信流程. 161 6.6.2 支持 HTTPS 的 Web 服务器 . 162 6.6.3 支持 HTTPS 的文件服务器. 165 6.6.4 基于 SSL/TLS 的 ECHO 程序 . 166 6.7 小结 . 169 第 7 章 工程管理. 170 7.1 Go 命令行工具. 170 7.2 代码风格 . 172 7.2.1 强制性编码规范. 172 7.2.2 非强制性编码风格建议. 173 7.3 远程 import 支持. 175 7.4 工程组织 . 175 7.4.1 GOPATH. 176 7.4.2 目录结构 . 176 7.5 文档管理 . 177 7.6 工程构建 . 180 7.7 跨平台开发 . 180 7.7.1 交叉编译 . 181 7.7.2 Android 支持 . 182 7.8 单元测试 . 183 7.9 打包分发 . 184 7.10 小结 . 184 第 8 章 开发工具. 186 8.1 选择开发工具 . 186 8.2 gedit . 187 8.2.1 语法高亮 . 187 8.2.2 编译环境 . 187 8.3 Vim. 188 8.4 Eclipse . 189 8.5 Notepad++ . 192 8.5.1 语法高亮 . 192 8.5.2 编译环境 . 192 8.6 LiteIDE . 193 8.7 小结 . 195 第 9 章 进阶话题. 196 9.1 反射 . 196 9.1.1 基本概念 . 196 9.1.2 基本用法 . 197 9.1.3 对结构的反射操作. 199 9.2 语言交互性 . 199 9.2.1 类型映射 . 200 9.2.2 字符串映射 . 201 9.2.3 C 程序. 201 9.2.4 函数调用 . 202 9.2.5 编译 Cgo. 203 9.3 链接符号 . 203 9.4 goroutine 机理 . 204 9.4.1 协程 . 204 9.4.2 协程的 C 语言实现. 205 9.4.3 协程库概述 . 205 9.4.4 任务 . 208 9.4.5 任务调度 . 210 9.4.6 上下文切换 . 211 9.4.7 通信机制 . 215 9.5 接口机理 . 216 9.5.1 类型赋值给接口. 217 9.5.2 接口查询 . 223 9.5.3 接口赋值 . 224 附录 A. 225 图灵社区会员 soooldier(soooldier@live.com) 专享 尊重版权
第1章初识Go语言本章将简要介绍Go语言的发展历史和关键的语言特性,并引领读者对Go语言的主要特性进行一次快速全面的浏览,让读者对G语言的总体情况有一个清晰的印象,并能够快速上手,用Go语言编写和运行自已的第一个小程序。1.1语言简史提起Go语言的出身,我们就必须将我们饱含敬意的眼光投向持续推出惊世骇俗成果的贝尔实验室。贝尔实验室已经走出了多位诺贝尔奖获得者,一些对于现在科技至关重要的研究成果,比如晶体管、通信技术、数码相机的感光元件CCD和光电池等都源自贝尔实验室。该实验室在科技界的地位可想而之,是一个毫无争议的科研圣地。这里我们重点介绍一下贝尔实验室中一个叫计算科学研究中心的部门对于操作系统和编程语言的贡献。回溯至1969年(估计大部分读者那时候都还没出世),肯·汤普逊(KenThompson)和丹尼斯·里奇(DennisRitchie)在贝尔实验室的计算科学研究中心里开发出了Unix这个大名鼎鼎的操作系统,还因为开发Unix而衍生出了一门同样赫赫有名的编程语言一C语言。对于很大一部分人而言,Unix就是操作系统的鼻祖,C语言也是计算机课程中最广泛使用的编程语言。Unix和C语言在过去的儿十年以来已经造就了无数的成功商业故事,比如曾在90年代如日中天的太阳微系统(SunMicroSystems),现在正如日中天的苹果的MacOSX操作系统其实也可以认为是Unix的一个变种(FreeBSD)。虽然已经取得了如此巨大的成就,贝尔实验室的这几个人并没有因此而沉浸在光环中止步不前,他们从20世纪80年代又开始了一个名为Plan9的操作系统研究项目,目的就是解决Unix中的一些问题,发展出一个Unix的后续替代系统。在之后的几十年中,该研究项目又演变出了另一个叫Inferno的项目分支,以及一个名为Limbo的编程语言。Limbo是用于开发运行在小型计算机上的分布式应用的编程语言,它支持模块化编程,编译期和运行时的强类型检查,进程内基于具有类型的通信通道,原子性垃圾收集和简单的抽象数据类型。它被设计为:即便是在没有硬件内存保护的小型设备上,也能安全运行。Limbo语言被认为是Go语言的前身,不仅仅因为是同一批人设计的语言,而是Go语言确实从Limbo语言中继承了众多优秀的特性。贝尔实验室后来经历了多次的动荡,包括背:汤普逊在内的Plan9项目原班人马加入了图灵社区会员soooldier(soooldier@live.com)专享尊重版权
1.1 语言简史 1 1 2 3 4 5 9 6 7 8 2 初识Go语言 本章将简要介绍Go语言的发展历史和关键的语言特性,并引领读者对Go语言的主要特性进 行一次快速全面的浏览,让读者对Go语言的总体情况有一个清晰的印象,并能够快速上手,用 Go语言编写和运行自己的第一个小程序。 1.1 语言简史 提起Go语言的出身,我们就必须将我们饱含敬意的眼光投向持续推出惊世骇俗成果的贝尔 实验室。贝尔实验室已经走出了多位诺贝尔奖获得者,一些对于现在科技至关重要的研究成果, 比如晶体管、通信技术、数码相机的感光元件CCD和光电池等都源自贝尔实验室。该实验室在科 技界的地位可想而之,是一个毫无争议的科研圣地。 这里我们重点介绍一下贝尔实验室中一个叫计算科学研究中心的部门对于操作系统和编程 语言的贡献。回溯至1969年(估计大部分读者那时候都还没出世),肯·汤普逊(Ken Thompson) 和丹尼斯·里奇(Dennis Ritchie)在贝尔实验室的计算科学研究中心里开发出了Unix这个大名鼎 鼎的操作系统,还因为开发Unix而衍生出了一门同样赫赫有名的编程语言——C语言。对于很大 一部分人而言,Unix就是操作系统的鼻祖,C语言也是计算机课程中最广泛使用的编程语言。Unix 和C语言在过去的几十年以来已经造就了无数的成功商业故事,比如曾在90年代如日中天的太阳 微系统(Sun MicroSystems),现在正如日中天的苹果的Mac OS X操作系统其实也可以认为是Unix 的一个变种(FreeBSD)。 虽然已经取得了如此巨大的成就,贝尔实验室的这几个人并没有因此而沉浸在光环中止步不 前,他们从20世纪80年代又开始了一个名为Plan 9的操作系统研究项目,目的就是解决Unix中的 一些问题,发展出一个Unix的后续替代系统。在之后的几十年中,该研究项目又演变出了另一个 叫Inferno的项目分支,以及一个名为Limbo的编程语言。 Limbo是用于开发运行在小型计算机上的分布式应用的编程语言,它支持模块化编程,编译 期和运行时的强类型检查,进程内基于具有类型的通信通道,原子性垃圾收集和简单的抽象数据 类型。它被设计为:即便是在没有硬件内存保护的小型设备上,也能安全运行。 Limbo语言被认为是Go语言的前身,不仅仅因为是同一批人设计的语言,而是Go语言确实从 Limbo语言中继承了众多优秀的特性。 贝尔实验室后来经历了多次的动荡,包括肯·汤普逊在内的Plan 9项目原班人马加入了 第1 章 图灵社区会员 soooldier(soooldier@live.com) 专享 尊重版权
2第1章初识Go语言Go0gle。在Google,他们创造了Go语言。早在2007年9月,Go语言还是这帮大牛的20%自由时间的实验项目。幸运的是,到了2008年5月,Go0gle发现了Go语言的巨大潜力,从而开始全力支持这个项目,让这批人可以全身心投入Go语言的设计和开发工作中。Go语言的第一个版本在2009年11月正式对外发布,并在此后的两年内快速选代,发展迅猛。第一个正式版本的Go语言于2012年3月28日正式发布,让Go语言迎来了第一个引人瞩目的里程碑。基于Google对开源的一贯拥抱态度,Go语言也自然而然地选择了开源方式发布,并使用BSD授权协议。任何人可以查看Go语言的所有源代码,并可以为Go语言发展而奉献自己的力量。Google作为Go语言的主推者,并没有简简单单地把语言推给开源社区了事,它不仅组建了一个独立的小组全职开发Go语言,还在自家的服务中逐步增加对Go语言的支持,比如对于Google有战略意义的云计算平台GAE(GoogleAppEngine)很早就开始支持Go语言了。按目前的发展态势,在Google内部,Go语言有逐渐取代Java和Python主流地位的趋势。在Google的更多产品中,我们将看到Go语言的踪影,比如Google最核心的搜索和广告业务。在本书的序中,我们已经清晰诠释了为什么在语言泛滥的时代Google还要设计和推出一门新的编程语言。按照已经发布的Go语言的特性,我们有足够的理由相信Google推出此门新编程语言绝不仅仅是简单的跑马圈地运动,而是为了解决切实的问题。下面我们再来看看Go语言的主要作者。口肯·汤普逊(KenThompson,http://en.wikipedia.org/wiki/Ken_Thompson):设计了B语言和C语言,创建了Unix和Plan9操作系统,1983年图灵奖得主,Go语言的共同作者。口罗布·派克(RobPike,http://en.wikipedia.org/wiki/Rob_Pike):Unix小组的成员,参与Plan9和Inferno操作系统,参与Limbo和Go语言的研发,《Unix编程环境》作者之一。口罗伯特·格里泽默(RobertGriesemer):曾协助制作Java的HotSpot编译器和Chrome浏览器的JavaScript引擎V8。口拉斯·考克斯(RussCox,http:/swtch.com/~rsc/):参与Plan9操作系统的开发,GoogleCodeSearch项目负责人。口伊安·泰勒(IanLanceTaylor):GCC社区的活跃人物,gold连接器和GCC过程间优化LTO的主要设计者,Zembu公司的创始人。口布拉德·菲茨帕特里克(BradFitzpatrick,http:/en.wikipedia.org/wiki/Brad_Fitzpatrick):LiveJournal的创始人,著名开源项目memcached的作者。虽然我们这里只列出了一部分,大家已经可以看出这个语言开发团队空前强大,这让我们在为Go语言的优秀特性而兴奋之外,还非常看好这门语言的发展前景。1.2语言特性Go语言作为一门全新的静态类型开发语言,与当前的开发语言相比具备众多令人兴奋不已的新特性。本书从第2章开始,我们将对Go语言的各个方面进行详细解析,让读者能够尽量轻松地掌握这门简洁、有趣却又超级强大的新语言。图灵社区会员soooldier(soooldier@live.com)专享尊重版权
2 第 1 章 初识 Go 语言 Google。在Google,他们创造了Go语言。早在2007年9月,Go语言还是这帮大牛的20%自由时间 的实验项目。幸运的是,到了2008年5月,Google发现了Go语言的巨大潜力,从而开始全力支持 这个项目,让这批人可以全身心投入Go语言的设计和开发工作中。Go语言的第一个版本在2009 年11月正式对外发布,并在此后的两年内快速迭代,发展迅猛。第一个正式版本的Go语言于2012 年3月28日正式发布,让Go语言迎来了第一个引人瞩目的里程碑。 基于Google对开源的一贯拥抱态度, Go语言也自然而然地选择了开源方式发布,并使用BSD 授权协议。任何人可以查看Go语言的所有源代码,并可以为Go语言发展而奉献自己的力量。 Google作为Go语言的主推者,并没有简简单单地把语言推给开源社区了事,它不仅组建了一 个独立的小组全职开发Go语言,还在自家的服务中逐步增加对Go语言的支持,比如对于Google 有战略意义的云计算平台GAE(Google AppEngine)很早就开始支持Go语言了。按目前的发展态 势,在Google内部,Go语言有逐渐取代Java和Python主流地位的趋势。在Google的更多产品中, 我们将看到Go语言的踪影,比如Google最核心的搜索和广告业务。 在本书的序中,我们已经清晰诠释了为什么在语言泛滥的时代Google还要设计和推出一门新 的编程语言。按照已经发布的Go语言的特性,我们有足够的理由相信Google推出此门新编程语言 绝不仅仅是简单的跑马圈地运动,而是为了解决切实的问题。 下面我们再来看看Go语言的主要作者。 肯·汤普逊(Ken Thompson,http://en.wikipedia.org/wiki/Ken_Thompson):设计了B语言 和C语言,创建了Unix和Plan 9操作系统,1983年图灵奖得主,Go语言的共同作者。 罗布·派克(Rob Pike,http://en.wikipedia.org/wiki/Rob_Pike):Unix小组的成员,参与Plan 9和Inferno操作系统,参与 Limbo和Go语言的研发,《Unix编程环境》作者之一。 罗伯特·格里泽默(Robert Griesemer):曾协助制作Java的HotSpot编译器和Chrome浏览 器的JavaScript引擎V8。 拉斯· 考克斯(Russ Cox,http://swtch.com/~rsc/):参与Plan 9操作系统的开发,Google Code Search项目负责人。 伊安·泰勒(Ian Lance Taylor):GCC社区的活跃人物,gold连接器和GCC过程间优化LTO 的主要设计者,Zembu公司的创始人。 布拉德·菲茨帕特里克(Brad Fitzpatrick,http://en.wikipedia.org/wiki/Brad_Fitzpatrick): LiveJournal的创始人,著名开源项目memcached的作者。 虽然我们这里只列出了一部分,大家已经可以看出这个语言开发团队空前强大,这让我们在 为Go语言的优秀特性而兴奋之外,还非常看好这门语言的发展前景。 1.2 语言特性 Go语言作为一门全新的静态类型开发语言,与当前的开发语言相比具备众多令人兴奋不已 的新特性。本书从第2章开始,我们将对Go语言的各个方面进行详细解析,让读者能够尽量轻松 地掌握这门简洁、有趣却又超级强大的新语言。 图灵社区会员 soooldier(soooldier@live.com) 专享 尊重版权