这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天
Go简介
计算机软件经历了数十年的发展,形成了多种学术流派,有面向过程编程、面向对象编程、函数式编程、面向消息编程等,这些思想究竟孰优孰劣,众说纷纭。
除了OOP外,近年出现了一些小众的编程哲学,Go语言对这些思想亦有所吸收。例如,Go语言接受了函数式编程的一些想法,支持匿名函数与闭包。再如,Go语言接受了以Erlang语言为代表的面向消息编程思想,支持goroutine和通道,并推荐使用消息而不是共享内存来进行并发编程。总体来说,Go语言是一个非常现代化的语言,精小但非常强大。
Go 语言最主要的特性:
- 自动垃圾回收
- 更丰富的内置类型
- 函数多返回值
- 错误处理
- 匿名函数和闭包
- 类型和接口
- 并发编程
- 反射
- 语言交互性
Go语言用途
Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。
对于高性能分布式系统领域而言,Go 语言无疑比大多数其它语言有着更高的开发效率。它提供了海量并行的支持,这对于游戏服务端的开发而言是再好不过了。
我的第一个Go程序
第一个Go程序Hello.go, 代码如下:
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
运行可以使用go run命令。
执行以上代码输出:
$ go run hello.go
Hello, World!
此外我们还可以使用go build命令来生成二进制文件:
ls
hello hello.go
$ ./hello
Hello, World!
Go的其他命令
| 命令 | 说明 |
|---|---|
| bug | 打开默认浏览器,显示go的github页面进行bug报告,并会自动添加系统的信息 |
| build | 编译指定的源码文件或代码包及依赖包 |
| install | 安装编译后的文件到指定目录 |
| get | 动态获取远程代码包及其依赖包,并进行编译和安装 |
| mod | 对go包的管理 |
| run | 编译并运行源码文件 |
| clean | 删除执行其他命令时产生的文件或目录 |
| fmt | 检查并格式化成go语言的规范格式 |
| list | 列出当前安装的包 |
| version | 查看当前go的版本 |
| env | 查看当前go的环境变量 |