简单学习了一下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如果写小工具(功能独立,实时性要求不高)非常合适,如日志处理,后台计算
相关推荐
### Go语言15套教程知识点概述 #### 01 Go语言基础(一) - **Go语言简介**:介绍Go语言的发展历史、设计理念及其优势特点。 - **环境搭建**:指导如何在Windows/Linux/MacOS环境下安装Go语言环境,并配置环境变量...
go学习文档,主要记录了go的基本用法以及cgo的使用。持续更新。
此外,文档作者分享了自己学习Go语言的心得与历程,从初识到深入,伴随了该语言的发展历程。作者提到自己基于对C语言和汇编语言的理解,能够深入探索Go语言的底层细节,这为理解和剖析Go源码提供了扎实的基础。 书...
接下来,作者分享了自己转向Go语言的心得体会,并提供了一些有用的资源。在学习Go的过程中,作者首先浏览了官方的“Go语言之旅”来获取基础知识。为了巩固这些知识,作者阅读了《Go语言从Python程序员的角度》,这...
Golang(Go语言)是一种开源的编程语言,它以其简洁的语法、高效的性能以及现代软件工程的最佳实践而受到广泛欢迎。在学习Golang时,可以重点关注以下几个方面: - **基础语法**:包括变量、数据类型、控制结构等...
- **在线社区**:加入GitHub、Stack Overflow等平台上的Go语言开发者社群,可以获取最新的技术资讯并与同行交流心得。 #### 五、结语 通过“编程网”的Go语言教程,读者不仅能够系统地学习Go语言的各项基础知识,还...
Google资深工程师的深度讲解,无疑会为Go语言的学习者提供宝贵的一手资料和实践心得。 Go语言的设计初衷是为了简化软件开发的复杂性,它支持快速的编译速度,强大的并发处理能力以及高效的网络和分布式系统构建。...
例如,一个中文博客文章的标题“Go语言学习心得”会被转换成“go-语言学习心得”,然后嵌入到URL路径中,如`/articles/go-语言学习心得`。 总结起来,"Go-slug-URL友好的slugify支持多种语言"为Go开发者提供了一种...
《零基础Go语言算法实战源码》是针对初学者的Go语言学习资源,通过实战项目的方式让学习者从零开始逐步掌握Go语言及其在算法方面的应用。该资源不仅提供了理论知识,还包括了大量的源码实例,帮助初学者深入理解Go...
布道师的角色不一定要等到你完全精通后才能开始,其实,从学习Go语言的每一个阶段开始,你都可以尝试将你的学习心得和解决方案分享出去,这不仅能够帮助他人,也能促进你自己不断进步。 在整个学习过程中,应该学会...
希望维护管理此仓库,记录学习Go语言部分心得,与其他同行参考。 本博客中涉及的完整代码: GitHub地址: https://github.com/thinkingfioa/go-learning 本人博客地址: https://blog.csdn.net/thinking_fioa 文中如若...
GO语言核心编程是关于...《GO语言核心编程(上 + 下)- 源码及课件》是一套全面、实用的学习资源,适合各个层次的Go语言学习者。它不仅帮助初学者掌握Go语言的基础,也助于经验丰富的开发者提高编程水平和工作效率。
描述中提到的“博文链接:https://hai0378.iteye.com/blog/2370349”表明该笔记可能源自一个博客文章,其中作者分享了他在学习Go语言时的心得体会、技巧和实践经验。ITEYE是一个知名的IT技术交流平台,博主通常会在...
本文将分享学习Flash动画的心得体会,帮助初学者更好地入门并逐步提高。 首先,基本入门阶段至关重要。在开始学习之前,要对Flash有一个全面的认识,了解它的特性,例如Flash是基于矢量图形的,这意味着它可以无损...
收集的go语言开发资料,包括现出版的书和一些学习心得。里面有Go语言编程、Go web 编程、Go 学习笔记 第二版、go(Google)语言精要、gobook、Golang常见的坑和编程模式、学习 Go 语言、[Addison-Wesley Professional]...
该规范的目的是为了帮助开发人员避免常见错误,同时通过"实践方法"学习编程语言心得。 输入验证是 Web 应用程序安全性中最重要的部分。如果未对用户输入及相关数据进行验证则会存在安全风险。根据服务器的功能,应...
【英语学习心得体会】 英语作为全球最广泛使用的语言之一,对于个人和职业发展的重要性不言而喻。在中国,网络学习作为一种新兴的学习方式,逐渐打破了传统的教育模式,为广大学习者提供了更加灵活、便利的学习途径...
在撰写学习心得体会的过程中,我们应当遵循一定的步骤和方法,这样才能深入地理解原文,并将内心的感悟有效地表达出来。本文将详细探讨如何写学习心得体会,为你提供一个系统性的写作框架。 首先,读原文是撰写学习...
【小学生英语学习心得】 英语作为一门全球通用的语言,对于小学生来说具有极其重要的学习价值。它不仅涉及语言基础知识,还涵盖了广泛的知识领域,如文化、历史、科学等,同时,英语也是一种文学艺术,蕴含着丰富的...