Go 语言教程
Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。
Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。
Go 语言特色
简洁、快速、安全
并行、有趣、开源
内存管理、v数组安全、编译迅速
计算机软件经历了数十年的发展,形成了多种学术流派,有面向过程编程、面向对象编程、函数式编程、面向消息编程等,这些思想究竟孰优孰劣,众说纷纭。
除了OOP外,近年出现了一些小众的编程哲学,Go语言对这些思想亦有所吸收。例如,Go语言接受了函数式编程的一些想法,支持匿名函数与闭包。再如,Go语言接受了以Erlang语言为代表的面向消息编程思想,支持goroutine和通道,并推荐使用消息而不是共享内存来进行并发编程。总体来说,Go语言是一个非常现代化的语言,精小但非常强大。
Go 语言最主要的特性:
- 自动垃圾回收
- 更丰富的内置类型
- 函数多返回值
- 错误处理
- 匿名函数和闭包
- 类型和接口
- 并发编程
- 反射
- 语言交互性
Go 语言用途
Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。
对于高性能分布式系统领域而言,Go 语言无疑比大多数其它语言有着更高的开发效率。它提供了海量并行的支持,这对于游戏服务端的开发而言是再好不过了。
Go语言环境安装
可以参考菜鸟教程的Go 语言环境安装
Go 语言支持以下系统:
- Linux
- Mac OS X
- Windows
安装包下载地址为:https://golang.org/dl/。
如果打不开可以使用这个地址:https://golang.google.cn/dl/。
各个系统对应的包名:
操作系统 | 包名 |
---|---|
Windows | go1.14.3.windows-amd64.msi |
Linux | go1.14.3.linux-amd64.tar.gz |
Mac | go1.14.3.darwin-amd64.pkg |
Source | go1.14.3.src.tar.gz |
UNIX/Linux/Mac OS X 安装 go
以下介绍了在UNIX/Linux/Mac OS X系统下使用源码安装方法:
1、下载二进制包:go1.14.3.linux-amd64.tar.gz。
2、将下载的二进制包解压至 /usr/local目录。
tar -C /usr/local -xzf go1.14.3.linux-amd64.tar.gz
3、将 /usr/local/go/bin 目录添加至PATH环境变量:
export PATH=$PATH:/usr/local/go/bin
Windows 系统下安装 go
Windows 下可以使用 .msi 后缀(在下载列表中可以找到该文件,如go1.14.3.windows-amd64.msi)的安装包来安装。
默认情况下 .msi 文件会安装在 c:\Go 目录下。你可以将 c:\Go\bin 目录添加到 Path 环境变量中。添加后你需要重启命令窗口才能生效。
第一个 Go 程序
接下来我们来编写第一个 Go 程序 hello.go(Go 语言源文件的扩展是 .go),代码如下:
实例
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
执行以上代码输出
$ go run hello.go
Hello, World!
go语言相关学习资料
- Go 语言官方教程中文版
- https://github.com/Go-zh/tour
- Go语言之旅
-
awesome-go
A curated list of awesome Go frameworks, libraries and software https://awesome-go.com/ - Go编程语言
- Go 语言教程-菜鸟教程
-
learn-go-with-tests
Learn Go with test-driven development - Ultimate Go study guide
- go语言中文网
- Go参考手册
- Go by Example 中文版
- Go by Example 英文原版
- Go 101
- Effective Go
- GO语言学习资源整理
- GO语言学习资料(视频+源码+电子书)免费领取
- Go语言学习资料大全
go语言的相关视频
GO语言学习资源整理
首推 Go by Example作为你的入门教程。然后,Go 101也是一个很不错的在线电子书。如果你想看纸书的话,The Go Programming Language 一书在豆瓣上有 9.2 分,但是国内没有卖的。
另外,Go 语言官方的 Effective Go 是必读的,这篇文章告诉你如何更好地使用 Go 语言,以及 Go 语言中的一些原理。
Go 语言最突出之处是并发编程,Unix 老牌黑客罗勃·派克(Rob Pike)在 Google I/O 上的两个分享,可以让你学习到一些并发编程的模式。
Go Concurrency Patterns( 幻灯片和演讲视频)。
Advanced Go Concurrency Patterns(幻灯片、演讲视频)。
然后,Go 在 GitHub 的 wiki 上有好多不错的学习资源,你可以从中学习到多。比如:
- Go 精华文章列表。
- Go 相关博客列表。
-
Go Talks。
还有个内容丰富的 Go 资源列表 Awesome Go,推荐看看。