作者:empty 页数:122 出版社:empty |
前言读者“Go是面向对象的语言吗?是也不是·TAQGO AUTHORS这是关于来自Google的Go语言的简介·目标是为这个新的、革命性的语言提侯一个指南·这本书的目标读者是那些熟悉编程·并且了解某些编程语言·例如CI6]’C++[28]Perl[B] 'Java[21] 'Erlang I 7] 'Scala[22] Haskell[1] ·这不是教你如何编程的书‘只是教你如何使用Go·学习某祥新东西·最佳的方式可能是通过编写程序来探索它·因北每章都包含了芳干练习(和答案)来让你熟悉这个语言·练习标有编号Qn'而n是一个数字·在练习编号后面的圓括号中的数字指定了该题的难度·难度范围从0到2:0.简单:1.中等:2.困难:
共后为了容易索引·提供了一个简短的标题·例如:展示了难度等级1、编号Q 1的关于nap() 函数的问题·相关答案在练习的下一夏·答案的顺序和练习一致·以An开头的答案·对应编号n的练习·一些练习没有答案·它们被用星号标识出来·Q 1.(1) map函数…内容布局第1章:简介第2章:基础第3章:函数提供了关于Go的简介和发展历史·网时讨论了如何获得Go自身的代码·虽然Go完全可以在windows平台上使用·但这里还是设使用类Unix环境·讨论了语言中可用的基本类型、变量和控制结构·会了解到函数·这是Go程序中的基本部件。第4章:包会了解在包中整合函数和数据·同时也将了解如何对包编写文档和进行测试·本书使用的设置第5章:避阶第6章:接会看到如何创建自定又的类型。同时也符了解Go中的内存分配。Ga不支持传统意义上的币向对象·在Ga中接是核心概念·第7章:并发第8章:通讯希望你喜欢本书·同时也喜欢上Gu语言。通过ga关键字·函数可以在不同的例程(叫做ga routines) 中执行·通过channel来完成这些go routines之间的通讯“最后一章展示了如何用接来完成Go程序的其他部分·如何创建、读取和写入文件·同时也简要了解一下网络的使用·本书使用的设置·Go被安装在-/go‘而sG0RDOT被设置为GoRD0T=T/go:希望编译的Go代码放在―/g/s re+而S GO PATH设置为GO PATH=T/g·翻译本书的内容可随意取用·这里已经有相关翻译:·中文那星:nttp://nw.ikespook.con/Leaming-go/·俄文:Michael Davydenko
什么是Go?来自其网站[17]的介绍:Go编程语言是一个使得程序员更加有效率的升源项目“Go是有表运力、简、清晰和有效率的·它的并行机制使其很容易编写多核和网络应用·而新奇的类型系统允许构建有弹性的模块化程序·Go编译到机器码非常快速·同时具有便利的短圾回收和强大的运行时反射·它是快速的·静志英型译语言·但是感觉上是动志英型的·解释型语言。Go1是Go语言的第一个稳定发布版本·本文档的所有练习都工作于Go1-如果不能工作, 那就一定是bug。本书使用了下面的约定:·代码用DejaVu Mono显示;·关键词用DejaVu Hono Botd显示;·注释用DeJaVu Hong Ira lic显示;,代码中额外的标记·用达种形式展现::使用数字①标记长内容-解释会跟随其后;·行号在右边展示;·Shell示例用%作为标记;,强调的段落会缩进·在左边有竖线·
官方文档Go已经有大量的文档·例如Go Tutor lal[16] 和Effective Go[11] ·网站http://goLang.ora/dee/也是绝仕的起点“·虽然并不一定要阅试这些文档·但是强烈建议这么做Go 1通过叫做go doc的标准程序提供其文档。如果你想了解内建相关(参阅下一章“运算符和内建函数“小节)的文档·可以像这样获取:“xttp is/gsang.arg/oac/本身是由gotoc提供服务的·E Chapter 1:简介在互联网上索时·应当使用go lang'站个词来R原始的Ngo dac buit tin在第4章解释了如何构造你自己的包的文格·
前身Go的前身来自于Inferno(2] (基于Plan 9[3] 的改造) ·inf emo包含了一个叫做Limbo l 4] 的语言·这里引用了一段来自于Lt mbo论文的描述:Go从Limba继承的另一个特性是channel(参脚第7章) 从Limbo文档来的另一段描述:channel在Go中比在Limbo中更加好用·如果我们对Go的历史深入探索·会发现一个指向“New squeak[25] 的线索·这是在类C语言中使用channel进行通讯的先躯▪channel并不是这些语言独有的·另一个非类c语言:Erlang[7] +也在使用它·使用channel与其他进程进行通讯叫做“通讯序列化过程(Communicating Se-quential Processes-CSP) -·由CA.R.Hoare l 24] 设计构想·而他正是那个发明快速排序123]算法的人。Limbo是用于开发运行在小型计算机上的分布式应用的编程语言它支持模块化编程·编译期和运行时的盛类型检查·进程内基于具有类型的channel通讯·原子性垃圾收集·和简单的抽象教据卖型·被设计用于便是没有硬件内存保护的小型设备上·也能安全的运行。[channel] 是用于向系统中其他代理发送和接收特定类型对象的通讯机channel可以用于本地进程问通讯:用于连接到命名的日的地的库方法·两种情况都是直接发送和接收操作的。Go是第一个实现了简单的(成更加简单的)并行开发·且跨平台的美c语言·
本书使用的设置aa
变量、类型和保留字
运算符和内建函数12
Go保留子.12
控制结构13
内建函数.18
a ray~lies和map:19
练习22
答案
3函数30
作用域
多值退回32
命名退回值,33
延迟代码.33
变参.,35
函数作为值.35
回调.36
恐慌(Panic) 和恢复(Recover).36
炼习,.
答案41
包48
标识符49
包的文50
测试包51
常用的包52
练习54
答案.55
5进阶58
内存分配.58
定义自己的类型:.61
USA·
件b61本
本书所有实例代码依此方式放入公共领域“
“学习G语言 已经被翻译为:
让我们开始学习Go吧。(1.0)
Chaper:Conte nls
2.5 array和lice
2.6 Simple far loop-+.
2.7Forluopwi than array
2.8Fizz-Buzz-.
2.9 Strings-.
2.10Runesin strings.
2.11 Reverse a string
3.1函数定义
3.2道归函数
3.3局部作用城
3.4全局作用城
.5当函数调用函数时的作用域
3.6没有defer.
3.7wthdefer.
3.8函数符号
39带*数的函数符号
3.10在defer中访问返回值,
3.11肚名函数
3.12使用map的函数作为值
3.13Go中的平均值函数.
3.14 stack.String 0.
3.15有变参的函数.
3.16Go编写的斐泼那契函数
3.17Map西数.
3.18冒泡排序
4.1A small package.
4.2 even包的使用
4.3 even包的渊试.
4.4包里的Stack,
4.5PushPop渊试
4.6通波三计算器.
5.1Useofa pointer.
5获取指针指向的值.
5.3 Structures.
5.4Go中更加通用的map函数
5.5cat程序
6.1定义结构和结构的方法
6.2用空接作为参数的函数
6.3实现接失败.
6.4扩展内建类型错误
6.5扩展非本地类型错误.
6.6使用反射自省.
6.7反射类型和值
6.8私有咸员的反射
6.9公有点员的反射
6.10通用的