初识Go语言及其几点特性

go语言是一门全新的静态类型开发语言,选择以开源方式发布,与当前的开发语言相比具有许多的新特性。首先先介绍一下go语言最主要的特性:

自动垃圾回收
更丰富的内置类型
函数多返回值
错误处理
匿名函数和闭包
类型和接口
并发编程
反射

首先我们先来看看自动垃圾回收,学过c语言或者是c++的应该都知道,当我们手动malloc或者new一块内存的时候,用完这块内存必须要free()或者是delete[],但如果由于程序员的失误而忘记了释放自己动态开辟的内存,就会引发我们所谓的内存泄露的问题。假设该函数被调用的非常频繁,那么这个进程所占用的内存资源会持续增长,直到占用完所有系统内存,这个时候系统也很自然会崩溃。

手动管理内存还给我们带来另外一个很严重的问题,由于指针的随意指向而让程序员不知道何时才去释放自己手动开辟出来的这块内存,如果程序员释放掉了某块内存,而在别的地方还在用这块内存的话,就会出现我们所谓的“野指针”或者叫做“悬空指针”。对这些指针若进行读写操作,那么程序也会报错。

而在go语言中,我们就不用担心因为自己忘记操作去释放某块内存而导致的内存泄露了,系统会自动帮我们去检测和回收,这样的话就会方便很多。

go语言还有更多丰富的内置类型,如map容器、数组切片等。go语言中数组切片的功能与c++中vector容器的功能非常相似。

我们都知道c语言和c++,return的时候只能带出来一个值,这样如果我们需要一个函数中的多个值的话用return就非常的不方便,而go语言一个函数可以带出来多个返回值,这就给程序员需要多返回值的时候带来了极大的方便。

go语言引入了三个关键字用于标准的错误处理流程,分别是defer、panic和recover。从总体上来说,go语言的错误处理机制和c++、Java里面的异常捕获机制相比,代码量大量减少,这样就让程序员不用为了考虑安全性而去增加大量代码。

从整体来看,go给我的感觉是高级版本的C语言,让其特点更加突出,尤其是其协程和通道的实现对并发编程有着近乎天然性的支持;

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页