Golang特性介绍分析和总结.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Go Lang 介绍 Go 编程语言是 Google 中一些大牛(尤其是有着 plan9 前科的大牛们)如 Rob Pike,Ken Thomason 这两位赫赫有名的程序高手、技术作于2007 年 9 月开始建造。 Pike 指出,Go 代码的编译基本上可以达到 C 语言的速度,几乎可以在瞬间完成,“就像是在使用交互式语言”。现有的语言都没有针对多核心处理器进行优化,为了解决此类编程问题,Google 工程师们开发了 Go 语言。从源文件的 copyright 可以看到,很多基础代码来自plan9. Go 已在 Google 公司内部测试过,但仍处于试验阶段。Google 开放 Go 的代码,希望籍此帮助 Go 语言的发展。首席软件工程师Rob Pike 说:我们开发Go,是因为近10 年左右开发程序之难让我们有点沮丧。Google 两年前开始开发 Go,1 年前开始有一只团队专职于此。目前只支持 unix 平台, windows 平台的支持由于资源的原因,需要更多的参与者来移植。Go 的定位 是系统编程,比如 Web 服务器、存储系统和数据库等,但也欢迎在其它方面的应用。 Go 语言的官方吉祥物如下: 我看好 Go 的原因是: 这个语言不是凭空或者实验室设计的,而是填补过去10 年在系统编程软件方面的不足。作为系统软件的编写者,经常会深深的感觉到目前常见语言的面对大规模的网络应用,在不断涌现的多核心硬件前的无奈 , 纠缠在多线程和各种锁中间, 不停的制造各种各样的轮子, 低效的排错。Go 拥有的这些现代特性都是系统用户梦迷以求的,经过作者全面的考虑,适当的取舍,即结合了动态语言的弹性,又有了静态语言的安全性和高性能。 目前这个GO 社区非常活跃,邮件列表里每天都有几百个讨论,加上有 Google 的强力支持, 个人认为非常有前途。 那么 GO 能解决什么问题: 硬件很快 软件开发很慢。 依赖很麻烦。 c++ java 太笨拙。 并行和gc 多核心机器的出现,未来几年 128 核心的机器都很常见。 大部分的系统语言并不是设计来解决这些问题的,而且新涌现的大多数库并没有改善这些问题,相反加剧了。 GO 结合了动态语言的开发效率和静态编译型语言的安全性和运行效率,支持网络和多核编程,带给我们快速, 安全, 并发, 快乐。 Go 有着非常高的效率。 实际上golang.org 就是用gdoc 架设的。同时语言效能评测网站() Go 和其他语言的对比,也充分说明了Go 的效率和c 语言很接近。 GO 的设计目标: 1。 系统编程语言。 快速编译和执行。 类型安全性和内存使用安全。 很好的支持并发计算。 高效,低延迟的垃圾回收算法。 指导原则: 减少 bookkeeping。 更少的关键词,减少无谓的输入。无符号表设计使得语法分析,调试等大幅简单。 保持概念正交 保持简单。 减少类型,无类型层次,避免啰嗦。 语言特性: 清晰,精确的语法语法:大多数从 c 继承, 包机制 Pascal/Modula/Oberon family (declarations, packages),并发从(CSP)那里借鉴。 大写符号导出符号。 函数或者块开始注释是文档,用于 gdoc 处理。 改进的 If, case 复合语句,允许在条件前,执行语句。 Case 不支持自动 fall throught, 必须显示说明。 Case 支持多个判断。 轻量的类型系统没有隐式的转换 强类型,显式类型转化 指针运算 slice 代替 提供安全性通用类型:interface{} 内置数组和字典 支持面向对象编程,但是不支持层次继承。 融合多种语言的特性,各个社区的人都会熟悉,特别是 c, lua, python 社区的用户非常容易上手。 运行期: c 和汇编实现内存的分配和收集,栈管理,轻量级协程,通讯管道,切片,Map 以及反射等等基础设施。 Gc:目前是用经典的简单的 Mark And sweep 算法, 未来会采用更高效,低延迟的算法。库实现: 完全用 Go 语言实现, 不依赖其他系统库 从接口库如 xml, asn1 ,jonson, IO 库,压缩,加密库等等,比较齐全,极大的方便了用户。 支持 unicode. 值得一提的是 Go 的 “hello 世界”,很好的展示了对 unicode 支持。 模块: Package 管理。一个 package 可以分散在多个文件里,就好比在一个文件效果一样。 扩展: Cgo 支持 c 和 go 编程混合,使得 GO 的扩展非常容易,让 Cgo 来做参数和类型的转换, 直接连接用户的 c 函数。 Range:for 语句支持通用的迭代,支持数组,字典,通讯管道。特别是通讯管道结合 goroutine,由生产者负责在一

文档评论(0)

hao187 + 关注
官方认证
文档贡献者

该用户很懒,什么也没介绍

认证主体武汉豪锦宏商务信息咨询服务有限公司
IP属地上海
统一社会信用代码/组织机构代码
91420100MA4F3KHG8Q

1亿VIP精品文档

相关文档