mirror of
https://github.com/unknwon/the-way-to-go_ZH_CN.git
synced 2025-08-11 22:53:43 +08:00
01.2.md
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
该翻译版本已获得原作者(Ivo Balbaert)本人授权,并表示支持开源事业的发展!
|
||||
|
||||
##翻译进度
|
||||
[起源与发展](./eBook/01.1.md)
|
||||
[语言的主要特性与发展的环境和影响因素](eBook/01.2.md)
|
||||
|
||||
##支持本书
|
||||
如果你喜欢本书《Go入门指南》,你可以参与到本书的翻译或纠正工作中来,一同完善本书并帮助壮大Go语言在国内的学习群体,给大家提供更好的学习资源。
|
||||
|
@@ -76,7 +76,7 @@ Go语言使用静态类型,所以它是类型安全的一门语言,加上通
|
||||
|
||||
Go语言其实也有一些动态语言的特性(通过关键字 `var`),所以它对那些逃离Java和.Net世界而使用Python,Ruby,Php和JavaScript的开发者们也具有很大的吸引力。
|
||||
|
||||
Go语言支持交叉编译,比如说你可以在运行Linux系统的计算机上开发运行下Windows下运行的应用程序。这是第一门支持UTF-8的编程语言( ***译者注:.NET好像也支持吧?*** ),这不仅体现在你它可以处理使用UTF-8编码的字符串,就连它的源码文件格式都是使用的UTF-8编码。Go语言做到了真正的国际化!
|
||||
Go语言支持交叉编译,比如说你可以在运行Linux系统的计算机上开发运行下Windows下运行的应用程序。这是第一门完全支持UTF-8的编程语言( ***译者注:.NET好像也支持吧?*** ),这不仅体现在它可以处理使用UTF-8编码的字符串,就连它的源码文件格式都是使用的UTF-8编码。Go语言做到了真正的国际化!
|
||||
|
||||
##啊哦,亲,你看得也太快了。。。还没翻译完呢 0 0
|
||||
要不等到 ***2013年4月11日*** 再来看看吧~~
|
||||
@@ -92,4 +92,61 @@ Go语言支持交叉编译,比如说你可以在运行Linux系统的计算机
|
||||
- [Go语言学习园地](http://studygolang.com/)
|
||||
- [Golang中国](http://golang.tc)
|
||||
|
||||
##1.2.6 语言的用途
|
||||
##1.2.6 语言的用途
|
||||
Go语言被设计成一门应用于搭载Web服务器,存储集群和类似用途的巨型中央服务器的系统编程语言。对于高性能分布式系统领域而言,Go语言无疑比大多数其它语言有着更高的开发效率。它提供了海量并行的支持,这对于游戏服务端的开发而言是再好不过了。
|
||||
|
||||
Go语言一个非常好的目标就是实现所谓的复杂事件处理([CEP](http://en.wikipedia.org/wiki/Complex_event_processing)),这项技术要求海量并行支持,高度的抽象化和高性能。当我们进入到物联网时代,CEP必然会成为人们关注的焦点。
|
||||
|
||||
但是Go语言同时也是一门可以用于实现一般目标的语言,例如对于文本的处理,前端展现,甚至像使用脚本一样使用它。
|
||||
|
||||
值得注意的是,因为垃圾回收和自动内存分配的原因,Go语言不适合来开发对实时要求很高的软件。
|
||||
|
||||
越来越多的谷歌内部的大型分布式应用程序都开始使用Go语言来开发,例如谷歌地球的一部分代码就是由Go语言完成的。
|
||||
|
||||
如果你想知道一些其它组织使用Go语言开发的实际应用项目,你可以到这个页面进行查看:[http://go-lang.cat-v.org/organizations-using-go](http://go-lang.cat-v.org/organizations-using-go)。出于隐私保护的考虑,许多公司的项目都没有展示在这个页面。我们将会在第21章讨论到一个使用Go语言开发的大型存储区域网络(SAN)案例。
|
||||
|
||||
在Chrome浏览器中内置了一款Go语言的编译器用于本地客户端(NaCl( ***为什么我觉得这是"钠"?*** )),这很可能会被用于在Chrome OS中执行Go语言开发的应用程序。
|
||||
|
||||
Go语言可以在Inter或ARM处理器上运行,因此它也可以在安卓系统下运行,例如Nexus系列的产品。
|
||||
|
||||
在 Google App Engine 中使用Go语言:2011年5月5日,官方发布了用于开发运行在 Google App Engine 上的Web应用的 Go SDK,在此之前,开发者们只能选择使用Python或者Java。这主要是 David Symonds 和 Nigel Tao 努力的成果。目前最新的稳定版是基于r60.3的SDK 1.6.1,于2011年12月13日发布。当前Go语言的稳定版本是Go 1( ***译者注:目前最新的稳定版是Go1.1*** )。
|
||||
|
||||
##1.2.7 关于特性丢失
|
||||
许多能够在大多数面向对象语言中能够发现的特性Go语言都没有支持,但其中的一部分可能会在未来被支持。
|
||||
|
||||
- 为了简化设计,不支持函数重载和操作符重载
|
||||
- 为了避免在C/C++开发中的一些Bug和混乱,不支持隐式转换
|
||||
- Go语言通过另一种途径实现面向对象设计(第10-11章)来放弃类和类型的继承
|
||||
- 尽管在接口的使用方面(第11章)可以实现类似变体类型的功能,但本身不支持变体类型
|
||||
- 不支持动态加载代码
|
||||
- 不支持动态链接库
|
||||
- 不支持泛型
|
||||
- 通过 `recover` 和 `panic` 来替代异常机制(第13.2-3节)
|
||||
- 不支持断言
|
||||
- 不支持静态变量
|
||||
|
||||
关于Go语言开发团队对于这些方面的讨论,你可以通过这个页面查看:[http://golang.org/doc/go_faq.html](http://golang.org/doc/go_faq.html)
|
||||
|
||||
##1.2.8 使用Go语言编程
|
||||
如果你有其它语言的编程经历(面向对象编程语言,如:Java,C#,Object-C,Python,Ruby),在你进入到Go语言的世界之后,你将会像迷恋你的X语言一样无法自拔。Go语言使用了与其它语言不同的设计模式,所以当你尝试将你的X语言的代码迁移到Go语言时,你将会非常失望,所以你需要从头开始,用Go的理念来思考。
|
||||
|
||||
如果你在至高点使用Go的理念来重新审视和分析一个问题,你通常会找到一个适用于Go语言的优雅的解决方案。
|
||||
|
||||
##1.2.9 小结
|
||||
这里列举一些Go语言的必杀技:
|
||||
|
||||
- 简化问题,易于学习
|
||||
- 内存管理,简洁语法,易于使用
|
||||
- 快速编译,高效开发
|
||||
- 高效执行
|
||||
- 并发支持,轻松驾驭
|
||||
- 静态类型
|
||||
- 标准类库,规范统一
|
||||
- 易于部署
|
||||
- 文档全面
|
||||
- 免费开源
|
||||
|
||||
##链接
|
||||
- [目录](directory.md)
|
||||
- 上一节:[起源与发展](01.1.md)
|
||||
- 下一章:[安装与运行环境](02.1.md)
|
@@ -6,6 +6,7 @@
|
||||
- 1.1 [起源与发展](01.1.md)
|
||||
- 1.2 [语言的主要特性与发展的环境和影响因素](01.2.md)
|
||||
- 第2章:安装与运行环境
|
||||
- 2.1 [平台与架构](02.1.md)
|
||||
- 第3章:编辑器、集成开发环境与其它工具
|
||||
|
||||
##第二部分:语言的核心结构与技术
|
||||
|
Reference in New Issue
Block a user