这是我参与「第五届青训营 」伴学笔记创作活动的第 2 天
特点
-
高性能、高并发
与C++媲美,不需要很多第三方库支持
-
语法简单、学习曲线平缓
类似C语言
-
丰富的标准库
-
完善的工具链
支持单元测试等
-
静态链接
部署方便
-
快速编译
-
跨平台
甚至可以编译出二进制文件到路由器上运行
-
垃圾回收
与Java类似,无需考虑内存释放
如何编译
go run ProName #编译运行
go build ProName #编译出二进制文件
./ProName #运行上面二进制文件
补充:Go语言特性:
-
并发
引入
goroutine,它是Go实现快速高效的并发编程的关键,通过调用go关键字,就可以让函数以goroutine的方式进行运行,也就是以协程为单位进行运行。协程比线程更加的轻量级,也更节省系统资源,这使得我们可以创建大量的
goroutine,从而进行轻松且高质量的并发编程。同时,goroutine内部采用管道channel进行消息传递,从而实现共享内存。 -
错误处理
与C不同,函数通过返回错误类型
error或者bool类型表名函数的执行结果,调用检查返回的错误类型值是否是nil来判断调用结果。并引入defer关键字用于标准的错误处理流程,提供了内置函数panic、recover完成异常的抛出与捕捉。 -
垃圾回收
自带垃圾回收,不需要delete或free。
-
多返回值
与python类似,函数支持多返回值,不需要为了一次返回多个值而创建结构体等。
另外:可以选择具体需要返回的值,只需要使用下划线作为占位符来丢掉不要的返回值即可。
-
匿名函数
Go支持常规的匿名函数和闭包,开发者可以随意对匿名函数变量进行传递和调用
f := func(x,y int) int {
return x+y
}