1 GO语言介绍
Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。
2015年8月 go1.5发布,这个版本被认为是历史性的。完全移除C语言部分,使用GO编译GO,少量代码使用汇编实现。另外,他们请来了内存管理方面的权威专家Rick Hudson,对GC进行了重新设计,支持并发GC,解决了一直以来广为诟病的GC时延(STW)问题。并且在此后的版本中,又对GC做了更进一步的优化。到go1.8时,相同业务场景下的GC时延已经可以从go1.1的数秒,控制在1ms以内。GC问题的解决,可以说GO语言在服务端开发方面,几乎抹平了所有的弱点。
思想
Less can be more
大道至简,小而蕴真
Go语言特性
- 并发与协程:Go语言在并发编程方面比绝大多数语言要简洁不少,这一点是其最大亮点之一,也是其在未来进入高并发高性能场景的重要筹码。当然,很多语言都支持多线程、多进程编程,但实现和控制起来并不是那么令人感觉轻松和愉悦。Go不同的是,语言级别支持协程(goroutine)并发(协程又称微线程,比线程更轻量、开销更小,性能更高),操作起来非常简单。
- 基于消息传递的通信方式
- 丰富实用的内置数据类型
- 函数多返回值
- defer机制
- 反射(reflect)
- 高性能HTTP Server
- 工程管理
- 编程规范
- GC机制:从C到C++,从程序性能的角度来考虑,这两种语言允许程序员自己管理内存,包括内存的申请和释放等。JAVA和C#等引入了垃圾回收机制,随之而来的是程序运行效率的降低。go做到了两者的兼容,既运行高效,开发效率也很高。
2 Go环境安装
Golang下载与安装
下载地址
安装好之后,检查是否安装成功
更改代理,因为go官网是网络不通的,需要换一个代理,方便后面安装一些插件
go env -w GOPROXY=https://goproxy.cn,direct
编辑器安装
1 vscode
2 goland
这两个是用的比较多的,可以都装着试试,哪个用的方便顺手选哪个。
用例
入门案例
package main
import "fmt"
func main() {
fmt.Println("hello world")
}
运行的话在terminal中输入 go run main.go即可