`
爱迪生的小屋
  • 浏览: 36299 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

GO语言学习心得

阅读更多

简单学习了一下GO语言,Google出品,值得期待

    GO语言一句话,就是一个小型的C语言,灵活度增加,复杂度降低:

1. 扩展了C的语法

     平行赋值,函数多返回值,可变参数的简化和for语法扩展有亮点

     强类型语言,变量类型自动声明聊胜于无

     函数免声明可以省点事情,基本上除C外,其它语言都早就支持

     去除#define,虽然可以大幅提高编译速度以及增强可读性,但是灵活性也有不小的损失

     函数参数默认值好像被去除,可惜了

     将一些库的方法(go,defer)提升到语法层向,对初学者是一大福音

     并发库应该比较优化,这是高性能的保证

2. 过程式编程

     type struct只是结构体,加上了this指针函数成了方法,struct继承不能称为继承,有点像javascript的对象内容拷贝,也不支持多态,构造函数,调用父类方法等功能。

     弱化的指针,不支持除(*和&)外的任何操作,这是为了和C兼容,但需要用户来选择值传递还是指针传递显得有点多余。

     我还是更喜欢Java的模式,即基本类型值传递,对象和数值统一指针传递。这种方式下除了要将修改过基本类型参数的值传递出去有点不方便外,都非常和谐。而且去了指针这个大麻烦。

3. 面向接口

     interface和对象无关,真正面向接口,也支持多态,这点不错,多少可以弥补不支持继承的弱势,但是方法调用的开销可能会比较大

4. 垃圾回收

     GC机制简单(单一算法,stop-the-world且无法配置)压缩了GO做为实时系统的使用空间,期待这方面的改进或者提供一个可以关闭系统GC,交给用户手动控制的机制

5. 函数库

     系统提供的库功能很强大,但是数量有限,成熟的语言中多数使用的库都是第三方提供的

 

总结:

     做为C的替代品,GO在执行效率上肯定有优势。但是主流的语言(Python, Java, PHP,Ruby)也都提供JIT功能(运行过程中翻译成机器语言),特别是Java的JIT,同为强类型语言,JIT后已经可以接近C的性能。

     语法上,GO介于Java与Ruby/Python之间,指针机制略显鸡肋,用接口弥补对象的不足,对于Java/Ruby/Python的用户者会不习惯,但对C/PHP的用户者是一大提高

     GC的不足,库的匮乏是两大硬伤。在复杂系统开发会受到很大的局限。

     GO如果写小工具(功能独立,实时性要求不高)非常合适,如日志处理,后台计算

 

0
1
分享到:
评论

相关推荐

    go语言编程,Go语言程序设计(英文版),学习 Go 语言(Golang),golang-china读书笔记

    - 这部分可能包含了社区成员对于Go语言的学习心得和实践总结,可能涵盖了一些高级主题,如性能优化、测试策略和项目构建。 通过深入学习这些知识点,无论是初学者还是经验丰富的开发者,都能更好地掌握Go语言,...

    go学习心得体会(持续更新)

    go学习文档,主要记录了go的基本用法以及cgo的使用。持续更新。

    Go语言15套教程(百度网盘)

    ### Go语言15套教程知识点概述 #### 01 Go语言基础(一) - **Go语言简介**:介绍Go语言的发展历史、设计理念及其优势特点。 - **环境搭建**:指导如何在Windows/Linux/MacOS环境下安装Go语言环境,并配置环境变量...

    Go 语言源码剖析_文字版.pdf

    此外,文档作者分享了自己学习Go语言的心得与历程,从初识到深入,伴随了该语言的发展历程。作者提到自己基于对C语言和汇编语言的理解,能够深入探索Go语言的底层细节,这为理解和剖析Go源码提供了扎实的基础。 书...

    Python到Go语言之路

    接下来,作者分享了自己转向Go语言的心得体会,并提供了一些有用的资源。在学习Go的过程中,作者首先浏览了官方的“Go语言之旅”来获取基础知识。为了巩固这些知识,作者阅读了《Go语言从Python程序员的角度》,这...

    Go语言教程 :go语言免费教程网站分享

    - **在线社区**:加入GitHub、Stack Overflow等平台上的Go语言开发者社群,可以获取最新的技术资讯并与同行交流心得。 #### 五、结语 通过“编程网”的Go语言教程,读者不仅能够系统地学习Go语言的各项基础知识,还...

    Go语言实战 文字版PDF 免费

    ### Go语言实战知识点总结 ...- **博客与文章**:Medium、Dev.to等平台上有很多关于Go语言的文章和心得分享。 通过上述知识点的学习,开发者可以更好地掌握Go语言的核心概念和技术要点,从而在实际项目中灵活运用。

    Go-slug-URL友好的slugify支持多种语言

    例如,一个中文博客文章的标题“Go语言学习心得”会被转换成“go-语言学习心得”,然后嵌入到URL路径中,如`/articles/go-语言学习心得`。 总结起来,"Go-slug-URL友好的slugify支持多种语言"为Go开发者提供了一种...

    leetcode题库-go-learning:Go语言学习。1>goinaction子项目是《Go语言实战》学习笔记;2>go-practic

    希望维护管理此仓库,记录学习Go语言部分心得,与其他同行参考。 本博客中涉及的完整代码: GitHub地址: https://github.com/thinkingfioa/go-learning 本人博客地址: https://blog.csdn.net/thinking_fioa 文中如若...

    尚硅谷_韩顺平_Go语言核心编程.docx

    Golang(Go语言)是一种开源的编程语言,它以其简洁的语法、高效的性能以及现代软件工程的最佳实践而受到广泛欢迎。在学习Golang时,可以重点关注以下几个方面: - **基础语法**:包括变量、数据类型、控制结构等...

    google的Go语言编程.pdf

    - **社区论坛**:加入Go语言相关的社区论坛,与其他开发者交流学习心得。 - **实践项目**:通过参与实际项目来提高编程技能。 总之,随着Google推出Go语言,其极有可能成为下一个重要的编程语言之一。对于有兴趣...

    github go 学习笔记

    描述中提到的“博文链接:https://hai0378.iteye.com/blog/2370349”表明该笔记可能源自一个博客文章,其中作者分享了他在学习Go语言时的心得体会、技巧和实践经验。ITEYE是一个知名的IT技术交流平台,博主通常会在...

    新师德规范学习心得体会.doc

    教师应以身作则,严格遵守学校规章制度,保持良好的职业操守,如不在办公时间玩电脑游戏,不在学生面前使用不文明语言等。教师的一言一行都会成为学生的榜样,因此,教师的行为应始终体现出高尚的道德风范,为学生...

    Flash动画的学习心得

    本文将分享学习Flash动画的心得体会,帮助初学者更好地入门并逐步提高。 首先,基本入门阶段至关重要。在开始学习之前,要对Flash有一个全面的认识,了解它的特性,例如Flash是基于矢量图形的,这意味着它可以无损...

    golang学习资料

    收集的go语言开发资料,包括现出版的书和一些学习心得。里面有Go语言编程、Go web 编程、Go 学习笔记 第二版、go(Google)语言精要、gobook、Golang常见的坑和编程模式、学习 Go 语言、[Addison-Wesley Professional]...

    Go语言安全编码规范。

    该规范的目的是为了帮助开发人员避免常见错误,同时通过"实践方法"学习编程语言心得。 输入验证是 Web 应用程序安全性中最重要的部分。如果未对用户输入及相关数据进行验证则会存在安全风险。根据服务器的功能,应...

    英语学习心得体会.doc

    【英语学习心得体会】 英语作为全球最广泛使用的语言之一,对于个人和职业发展的重要性不言而喻。在中国,网络学习作为一种新兴的学习方式,逐渐打破了传统的教育模式,为广大学习者提供了更加灵活、便利的学习途径...

    小学生英语学习心得.doc

    【小学生英语学习心得】 英语作为一门全球通用的语言,对于小学生来说具有极其重要的学习价值。它不仅涉及语言基础知识,还涵盖了广泛的知识领域,如文化、历史、科学等,同时,英语也是一种文学艺术,蕴含着丰富的...

    观摩学习心得体会.doc

    【观摩学习心得体会】 本次观摩学习活动,以华南师范大学举办的第五届“现代与经典”全国小学语文教学观摩研讨会为焦点,展示了王菘舟、窦桂梅等名师的卓越教学风采。通过这次学习,我深刻体会到,课堂不仅是传授...

    市小学语文主题学习心得体会.doc

    市小学语文主题学习心得体会主要揭示了现代语文教育中的一些核心理念和有效教学策略。以下是根据文档内容提炼出的几个关键知识点: 1. **主体性教学**:传统的教学方式往往以教师为中心,学生被动接受知识。然而,...

Global site tag (gtag.js) - Google Analytics