Go学习笔记1----认识Go语言

一、Go语言的起源

Go 语言起源 2007 年,并于 2009 年正式对外发布。它从 2009 年 9 月 21 日开始作为谷歌公司 20% 兼职项目,即相关员工利用 20% 的空余时间来参与 Go 语言的研发工作。该项目的三位领导者均是著名的计算机工程师:Robert Griesemer,参与开发 Java HotSpot 虚拟机;Rob Pike,Go 语言项目总负责人,贝尔实验室 Unix 团队成员,参与的项目包括 Plan 9,Inferno 操作系统和 Limbo 编程语言;Ken Thompson,贝尔实验室 Unix 团队成员,C 语言、Unix 和 Plan 9 的创始人之一,与 Rob Pike 共同开发了 UTF-8 字符集规范。2009 年 11 月 10 日,开发团队将 Go 语言项目以 BSD-style 授权(完全开源)正式公布了 Linux 和 Mac OS X 平台上的版本。Hector Chu 于同年 11 月 22 日公布了 Windows 版本。

二、go语言的特性

  1. 并发编程

go语言引入了goroutine,它是Go实现快速高效的并发编程的关键。
通过调用go关键字,我们就可以让函数以goroutine的方式进行运行,也就是以协程为单位进行运行。
协程是比线程更加的轻量级,也更节省系统资源,这使得我们可以创建大量的goroutine,从而进行轻松且高质量的并发编程。
同时,goroutine内部采用管道channel进行消息传递,从而实现共享内存。

  1. 错误处理

Go 语言中的错误处理的哲学和 C 语言一样,函数通过返回错误类型(error)或者bool类型(不需要区分多种错误状态时)表明函数的执行结果,调用检查返回的错误类型值是否是nil来判断调用结果。并引入了 defer 关键字用于标准的错误处理流程,并提供了内置函数panic、recover完成异常的抛出与捕捉

  1. 垃圾回收

Go 语言自带垃圾自动回收的功能,让 Go 语言不需要delete关键字,也不需要free()来释放内存。因此开发者无需考虑何时需要释放之前分配的内存的问题,系统会自动帮我们判断,并在适当的时候进行垃圾处理。垃圾自动回收是 Go 语言的一个特点,也是一大亮点。

  1. 多返回值

Go 语言和 Python 一样也支持函数的多返回值功能,这个特性让开发者可以从原来用各种比较别扭的方式返回多个值得痛苦中解脱出来,不需要为了一次返回多个值而专门定义一个结构体。并且每个返回值都有自己的名字,开发者还可以选择具体需要返回的值,只需要使用下划线作为占位符来丢掉不要的返回值即可。

  1. 匿名函数

Go 语言支持常规的匿名函数和闭包,开发者可以随意对匿名函数变量进行传递和调用

三、go语言可以做什么?

Go 语言 是谷歌发布的第二款开源编程语言。专门针对多处理器系统应用程序的编程进行了优化,使用 Go 编译的程序可以媲美 C 或 C++代码的速度,而且更加安全、支持并行进程。Go 的目标是希望提升现有编程语言对程序库等依赖性(dependency)的管理,这些软件元素会被应用程序反复调用。由于存在并行编程模式,因此也被设计用来解决多处理器的任务。

四、go语言的优缺点

  • 优点
    GO语言的优点:编译时间快:GO语言编写最大的微服务的时间大概需要6秒,相对Java和C++呆滞的编译速度来说,GO语言快速编译是主要的效率优势。并发性和通道:GO语言的logo大家可以了解一下,它就是致力于事情简单化,也就是快。其实并没有引入很多的新的概念。就是打造一门简单的语言,使用起来很快。在goroutine上运行一个函数最小的样板代码,我们只需要使用关键词go添加函数调用:生态系统也是很强大的:面向Redis、RabbitMQ、Template等等很多稳定的库。有很强大的工具支持。

  • 缺点
    GO语言的缺点:缺少框架:GO是没有一个主要的框架。但是很多人认为不应该从框架的使用开始。也可以从社区的讨论了解一下这个问题。错误处理:在错误处理方式,很容易丢失错误发生范围,所以在编程过程中很难向用户提供出有意义的错误信息。软件包管理:在默认的情况下,没有办法制定特定版本的依赖库。、也没有办法创建可以复写的builds。

发布了40 篇原创文章 · 获赞 23 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/suoyudong/article/details/104812002