Golang之美教程.pptVIP

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Golang之美教程

Golang之美 —蔡欣圻、邵聪聪 2016-09;目录;Golang的哲学;Golang之美; 六、简单易学,Go语言的作者都有C的基因,那么Go自然而然就有了C的基因,那么Go关键字是25个,但是表达能力很强大,几乎支持大多数你在其他语言见过的特性:继承、多态、接口等。 七、丰富的标准库,Go目前已经内置了大量的库,特别是网络库非常强大,是目前标准库最强大的语言之一,基本上平时使用的所有功能都可以在标准库中觅得身影。 八、完善的第三方生态环境,你所需要的所有功能都可以在第三方库中找到,而且go的三方库开发非常活跃,这个通过github的统计数据就可以得知,具体的三方库部分列表可以通过awesome-go去查看 九、跨平台编译 可以在任何一个平台编译其它所有系统和平台的发布版本,例如在mac上编译windows、linux、plan9、fuchsia,编译平台包括i386、amd64、arm等等,所以go在物联网和嵌入式领域特别有优势,编译出来的不仅体积小,而且无需安装任何依赖就可以在嵌入式系统中运行 十、内嵌C、C++支持,前面说了作者是C的作者,所以Go里面也可以直接包含c代码,利用现有的丰富的C库,不过其实我们并不提倡这么做,因为Go语言已经足够快,也许只有在数据库底层存储这种场景需要调用C、C++函数去完成一些任务了。 十一、内置强大的工具 Go语言里面内置了很多标准工具链,包括了代码格式化和风格提示、单元测试、Benchmark、系统profile、代码生成、文档生成等等。;例如,gofmt工具,自动化格式化代码,能够让团队review变得如此的简单,代码格式一模一样,对于后续项目的维护非常有优势。很多人都发现go的第三方库的源码非常好阅读,就是因为简洁的语法和统一的代码风格。 下面附上Go自带的标准profile工具生成的图(在本地对远程的服务器进行profile),只需一行命令即可: 1、系统中各个函数的调用关系和CPU时间分布图: go tool pprof -web http://xx.14.200:6001/debug/pprof/profile ; 2、内存使用大小分布: go tool pprof -web -alloc_space http://xx.7.14.200:6001/debug/pprof/heap ; 3、内存对象分配数分布: go tool pprof -web -alloc_objects http://xx.7.14.200:6001/debug/pprof/heap; 4、强大、简单的benchmark 代码: package bench import ( testing ) // 测试Xor性能 func BenchmarkXor(b *testing.B) { a := 0 for i := 0; i b.N; i++ { final := 0 for i := 0; i 1000; i++ { final ^= i } a = final } _ = a } 命令go test -v -run=none -bench=. -benchmem -benchtime=‘3s’ 结果 BenchmarkXor-8 310 ns/op 0 B/op 0 allocs/op PASS ok go_test/bench 6.537s; Golang vs Java; 五、接口: java中的接口作为不同组件中的契约存在,是强制的,类必须声明实现了某接口,需要从该接口继承。哪怕是两个一模一样的接口但只有名字不一样,也只能根据类所声明的实现接口是否包括该接口来决定该类是否实现该接口,叫做“侵入式”的接口。而GO语言中采用的是非侵入式接口,一个类只需要实现接口要求的所有函数,那我们就说该类型隐式实现了该接口,这个在使用第三方库的时候非常易用,大大减少了库之间的耦合度。GO语言可以通过接口进行接口查询(接口指向的对象是否实现了另外的接口),类型查询等 六、多态

文档评论(0)

shuwkb + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档