时间:2023-06-18|浏览:258
用戶喜愛的交易所
已有账号登陆后会弹出下载
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。