搭建go语言开发环境

1. golang开发工具

1.1. 开发工具简介

golang的开发工具有很多,例如:

  1. vim
  2. sublime
  3. atom
  4. LiteIDE
  5. eclipse
  6. goland
  7. vscode

1.2. 使用goland开发go应用

goland是一款付费的、功能强大的golang集成开发环境,是Jetbrain公司的产品。下载地址:https://www.jetbrains.com/go/ goland非常智能,几乎不需要配置,安装即用。

1.3. 使用vscode开发go应用

  1. 下载安装vscode https://code.visualstudio.com/

  2. 下载安装插件,参考文档:https://marketplace.visualstudio.com/items?itemName=golang.go

  3. 安装常用工具包:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    go get -u -v github.com/nsf/gocode // 代码自动补齐
    go get -u -v github.com/rogpeppe/godef // 查找方法定义
    go get -u -v github.com/golang/lint/golint // 代码规范
    go get -u -v github.com/lukehoban/go-find-references // 查找引用
    go get -u -v github.com/lukehoban/go-outline //
    go get -u -v sourcegraph.com/sqs/goreturns
    go get -u -v golang.org/x/tools/cmd/gorename // 重命名
    go get -u -v github.com/tpng/gopkgs // 可以使用的包
    go get -u -v github.com/newhook/go-symbols

    注意执行时删除后面的注释

  4. 安装code runner运行脚本

2. 第一个go程序

2.1. helloworld

main.go

1
2
3
4
5
6
7
8
9
10
11
// 主包,可执行文件所在包
package main

// 导入包
import "fmt"

// 主函数,入口函数
func main() {
// 打印输入
fmt.Println("Hello, World!")
}

cmd 中运行

1
go run main.go

2.2. 编译

使用go build,表示将源代码编译成可执行文件。

1.在项目目录下执行go build

2.在其他路径下执行go build ,需要在后面加上项目的路径(项目路径从GOPATH/src后开始写起,编译之后的可执行文件就保存在当前目录下)

3.go build -o hello.exe(指定名称)

可在终端直接执行该hello.exe文件:

1
2
c:\desktop\hello>hello.exe
Hello World!

go run

像执行脚本文件一样执行go代码

go install

go install分为两步:

1.先编译得到一个可执行文件

2.将可执行文件拷贝到GOPATH/bin

2.3. 跨平台编译

默认我们go build的可执行文件都是当前操作系统可执行的文件,Go语言支持跨平台编译——在当前平台(例如Windows)下编译其他平台(例如Linux)的可执行文件。

Windows编译Linux可执行文件

默认我们go build的可执行文件都是当前操作系统可执行的文件,如果想在windows下编译一个Linux下可执行的文件,那需要怎么做呢?

注意:无论你在Windows电脑上使用VsCode编辑器还是Goland编辑器,都要注意你使用的终端类型,因为不同的终端下命令不一样!!!目前的Windows通常默认使用的是PowerShell终端。

如果你的Windows使用的是cmd,那么按如下方式指定环境变量。

1
2
3
SET CGO_ENABLED=0  // 禁用CGO
SET GOOS=linux // 目标平台是linux
SET GOARCH=amd64 // 目标处理器架构是amd64

如果你的Windows使用的是PowerShell终端,那么设置环境变量的语法为

1
2
3
$ENV:CGO_ENABLED=0
$ENV:GOOS="linux"
$ENV:GOARCH="amd64"

在你的Windows终端下执行完上述命令后,再执行下面的命令,得到的就是能够在Linux平台运行的可执行文件了。

1
go build

Windows编译Mac可执行文件

Windows下编译Mac平台64位可执行程序:

cmd终端下执行:

1
2
3
4
SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build

PowerShell终端下执行:

1
2
3
4
$ENV:CGO_ENABLED=0
$ENV:GOOS="darwin"
$ENV:GOARCH="amd64"
go build

Mac编译Linux可执行文件

Mac电脑编译得到Linux平台64位可执行程序:

1
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build

Mac编译Windows可执行文件

Mac电脑编译得到Windows平台64位可执行程序:

1
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build

Linux编译Mac可执行文件

Linux平台下编译Mac平台64位可执行程序:

1
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build

Linux编译Windows可执行文件

Linux平台下编译Windows平台64位可执行程序:

1
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build

2.test.go

1
2
3
4
5
package main
import "fmt"
func main() {
fmt.Println("Google" + "Runoob")
}

运行

1
go run test.go

3.date.go

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package main

import (
"fmt"
)

func main() {
// %d 表示整型数字,%s 表示字符串
var stockcode=123
var enddate="2020-12-31"
var url="Code=%d&endDate=%s"
var target_url=fmt.Sprintf(url,stockcode,enddate)
fmt.Println(target_url)
}

运行

1
2
3
go run date.go

结果:Code=123&endDate=2020-12-31

2.4. main包的意义

在 Go 语言里,命名为 main 的包具有特殊的含义。Go 语言的编译程序会试图把这种名字的包编译为二进制可执行文件。所有用 Go 语言编译的可执行程序都必须有一个名叫 main 的包。一个可执行程序有且仅有一个 main 包。当编译器发现某个包的名字为 main 时,它一定也会发现名为 main()的函数,否则不会创建可执行文件。main()函数是程序的入口,所以,如果没有这个函数,程序就没有办法开始执行。程序编译时,会使用声明 main 包的代码所在的目录的目录名作为二进制可执行文件的文件名。

-------------本文结束感谢您的阅读-------------