Go语言,相比其他编程语言,还比较新型,因此它能被这么多人学习,肯定是有多方面的原因,本篇文章主要讲下Go语言不同于其他编程语言的6个特性,希望能帮助你更好地了解,请看下文:
第一点:Go始终在构建中包含runtime
Go语言在运行时,提供垃圾回收、内存分配、并发支持和网络等服务,被编译进每个Go二进制文件,与许多其他语言不同,其中许多语言使用虚拟机,需要与程序一起安装才能正常工作。
将运行时直接包含在二进制文件中使得分发和运行Go程序变得非常容易,并避免了运行时与程序之间的不兼容问题,由于不需要运行外部依赖项,因此它们的启动速度非常快。
第二点:Go没有集中托管的程序依赖服务
为了访问已发布的Go程序,开发人员不依赖于集中托管的服务,相反,项目通过其源代码存储库(如GitHub)共享。
第三点:Go是按值调用
在Go中,当你提供基本类型或结构作为函数的参数时,Go始终会创建变量值的副本,在其他语言中,基本类型是通过值传递的,但对象是通过引用传递的,也就意味着接收函数实际上接收到指向原始对象的指针,而不是其副本。
第四点:defer关键字
程序通常必须发布、清理和执行资源、文件、连接等,因此Go引入了defer关键字作为管理这一点的有效方法。任何前面带有defer的语句都会延迟其调用,直到周围的函数退出,也就意味着你可以将清理/拆卸代码放在函数的顶部,知道函数完成,也就会完成你的工作。
第五点:Go吸纳了函数式编程的最佳特性
函数式编程是一种高效且富有创造性的范式,值得庆幸的是,Go采纳了函数式编程的最佳特性。在Go中:
-- 函数是值,这意味着它们可以作为值添加到 map 中,作为参数传递到其他函数中,设置为变量,并从函数返回(称为"高阶函数",在 Go 中经常用于使用装饰器模式创建中间件)。
-- 在其他函数中声明的函数允许闭包(其中在函数内部声明的函数能够访问和修改在外部函数中声明的变量)。在惯用的 Go 中,闭包被广泛使用,限制了函数的作用域,并设置了函数在其逻辑中使用的状态。
第六点:错误处理
Go的错误处理方式与其他语言大不相同,简言之,Go通过返回error类型的值作为函数的最后一个返回值来处理错误。
当函数按预期执行时,将为error参数返回nil,否则返回错误值。然后,调用函数检查错误返回值,并处理错误,或引发自己的错误。
关于"Go语言有哪些不同于其他语言的特性?"的话题到这里就结束了,如果你想要学习GO语言,欢迎来老男孩教育。我们为学员提供免费试听,来校试听即送书籍,本书由老男孩教育多位金牌讲师依托老男孩教育多年线下教育实践经验撰写,可以帮你快速上手GO语言。
推荐阅读: