okx

区块链开发新手必读——Go语言简介

时间:2023-06-18|浏览:258

欧易

欧易(OKX)

用戶喜愛的交易所

币安

币安(Binance)

已有账号登陆后会弹出下载

一、什么是Go语言

Go语言,又称Golang,是21世纪的C语言。它可以让程序员更高效地编写代码,并且优化了多处理器系统的应用程序,使其速度可以与C或C ++代码的程序媲美。此外,它还支持更安全的并行进程。

在选择项目语言时,开发人员通常必须在快速开发和程序性能之间作出选择。例如,C和C ++这些语言拥有优异的性能,而Ruby和Python这些语言则擅长快速开发。而Go语言走在这两者之间,既提供高性能的语言,又可以让开发更加迅速。

总之,Go语言是一种编译型系统编程语言,具有静态编译语言的高性能和动态语言的高效开发能力。

二、Go语言的演变历史

2007年 – Google内部项目

Go语言即让员工抽出本职工作之外时间的20%投入在该项目上。谷歌首席软件工程师Rob Pike表示:我们之所以开发Go语言,是因为过去10多年间软件开发的难度令人沮丧。

2008年3月 – 第一版语言规范起草

2009年11月10日 – Go语言成为开源编程语言家庭的一员。

2015年8月19日 – 发布Go1.5版,移除了“最后残余的C代码”。

2018年2月16日 – 发布Go1.10版。

三、Go语言特性

自动垃圾回收

在Go语言中,系统会自动判断何时需要释放之前分配的内存空间,并在CPU相对空闲时对不使用的内存进行收集。

丰富的内置类型

Go语言中的内置类型包括:整型、浮点型、数组、字符串、字典map、切片slice等。由于语言内置了这些类型,因此开发者可以省去添加依赖的包,使代码更加精简。

函数多返回值

Go语言是静态开发语言中率先提供多返回值功能的语言。如果开发者只关心函数中的某几个返回值,可以使用下划线作为占位符忽略其他不关心的返回值。

异常处理

异常处理涉及三个关键字:error、panic和recover。其中,error报告程序中的普通错误,panic报告程序中的致命性错误,而recover可以让程序从panic状态中恢复。

匿名函数与闭包

匿名函数是一种没有定义函数名的函数。在Go语言中,闭包就是匿名函数,它可以通过匿名函数“捕获”和它在同一作用域的其它常量和变量。

结构体

结构体是一系列具有相同或不同类型的数据构成的数据集合。例如,可以利用结构体定义一个学生的学号/姓名/性别/年龄等属性。

接口

接口是具体描述一系列方法的集合。例如,可以利用接口将一个人的说、唱这些行为集中到一起。

并发编程

并发编程是指在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行。 Go语言从语言级别上对并发提供了支持,goroutine是Go并发设计的核心,而goroutine就是Go语言实现的协程。在Go程序里,只需要在函数调用语句前添加关键字“go”,就可创建并发执行单元。

反射功能

反射是通过reflect包实现的,reflect包定义了两种反射类型:Type和Value。通过反射机制,可以获取接口变量存储的类型以及相应的值。

四、Go语言目前的实际应用

- 谷歌 – YouTube后台服务端程序 - 盛大 – 盛大云计算 - 小米 – 小米抢购系统、日志平台 - dotCloud – Docker

五、Go语言资源和学习资料

5.1 Go语言项目资源

- 爱好者开发的Go论坛及博客 - 其他海量开源项目网站:go-wiki、GoWalker、GoLanguageResources

5.2 Go语言学习资料

- Go语言官网:https://golang.org - Go中文社区:https://studygolang.com - Go中文在线文档:https://studygolang.com/pkgdoc

参考资料:

- 许式伟,吕桂华。《Go语言编程》[M]。北京:人民邮电出版社,2012:2-10。

-END-

链块学院区块链系列网课已上线,学习路径已为您规划好,离区块链工程师就差这一张图的距离了。附上链块学院网课学习平台链接:http://wk.liankuai.tech/,助教卫星:lkxy007。

热点:GO语言 区块链 区块链开发

« 上一条| 下一条 »
区块链交流群
数藏交流群
区块链币圈-全球区块链数字货币行情、比特币虚拟货币资讯,狗狗币以太坊环保币柚子币莱特币瑞波币等加密数字货币价格非交易行情查询,金色财经巴比特范非小号快讯平台。
趣开心资讯 Qukaixin.cn ©2020-2024版权所有 桂ICP备19010284号-1