0. 安装与配置
-
下载、安装开发包
官网地址:https://golang.google.cn/dl/
国内地址:https://studygolang.com/dl -
For Linux
1、添加路径到PATH 环境变量
将安装路径如: /usr/local/go/bin 目录添加至 PATH 环境变量。在 ~/.bashrc 或者 ~/.bash_profile 中新增如下语句:
export PATH=$PATH:/usr/local/go/bin
2、生效环境变量
在 shell 中执行source ~/.bashrc
或者下面的
source ~/.bash_profile
3、检查环境变量配置
go version
输出
go version go1.16.5 linux/amd644、配置代理
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct -
编辑器 or IDE
推荐 VSCode(安装Go插件)、GoLand
1.Hello World
- 输出 Hello World
新建一个 Go 源文件:main.go
package main //每个 Go 程序都是由包构成的。程序从 main 包 开始运行。
import "fmt" // 导入 fmt 包
func main() { //main 函数,无参数
fmt.Println("Hello World") //使用 fmt 包中的 Println 函数在标准 输出上打印 Hello World
}
直接运行:
go run main.go
输出:
Hello World
或者编译为可执行文件后运行
go build main.go
./main
Hello World
main 函数必须要写在 main 包中。
2.二分查找
binary_search.go
package main
import "fmt"
func main() {
data := []int{1, 2, 3, 66, 100}
fmt.Println(BinarySearch(data, 3))
fmt.Println(BinarySearch(data, 10))
fmt.Println(BinarySearch(data, 1))
}
func BinarySearch(data []int, target int) int {
l, r := 0, len(data)
for l < r {
mid := l + (r-l)/2
if target < data[mid] {
r = mid
} else if target > data[mid] {
l = mid + 1
} else if target == data[mid] {
return mid
}
}
return -1
}
运行案例:
go run binary_search.go
3.命令行程序
Go 的 main 函数与 C 语言或者其他的语言的有点区别,它是一个无参数的函数,如果我们想通过命令行传入参数该怎么做呢?Go 通过内置的 os 包可以获取命令参数。下面写一个回显命令行参数的程序。
echo_args.go
package main
import (
"fmt"
"os"
)
func main() {
//命令行参数存放在 os.Args 中
for i, cmd := range os.Args {
fmt.Printf("args[%d]:%s\n", i, cmd)
}
}
运行:
go run echo_args.go hello world 123
输出如下:
args[0]:/tmp/go-build1340540512/b001/exe/echo_args
args[1]:hello
args[2]:world
args[3]:123
4.Playground
有些时候要贴一段代码给别人看,直接贴在微信或QQ 里面,代码的格式变得很乱难以阅读,而且无法立即运行。借助在线的 Playground 便可以解决上述问题。
官方:https://play.golang.wiki/
国内:https://play.studygolang.com/
5. Go 交叉编译
有时候我们在 Windows下开发好的程序需要编译为 Linux 平台的格式来在 Linux 运行。在一个平台上生成另一个平台的可执行程序,这就叫交叉编译。需要关闭 CGO,因为 CGO 不可移植。
例1:在 Windows 编译生成 Linux 下的可执行程序。
SET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64
go build main.go
例2:在 Linux下编译生成 Windows可执行程序
GOOS=windows GOARCH=amd64 go build main.go