Go入门

本文最后更新于:1 个月前

Go学习

1、环境安装

Mac

方式一

使用 brew

1
$ brew install go

升级命令

1
$ brew upgrade go

控制台输入go version,若输出版本号则安装成功

方式二

通过安装包装

地址:https://dl.google.com/go/go1.12.darwin-amd64.pkg
下载之后直接点击安装

配置环境变量
1
2
3
4
5
6
vi ~/.bashrc
export GOROOT=/usr/local/go
export GOPATH=/Users/Calm/go/code1
export GOBIN=$GOROOT/bin
export PATH=$PATH:$GOBIN

如果命令行使用的是zsh,请修改 .zshrc 文件。

1
2
3
4
5
6
vi ~/.zshrc
export GOROOT=/usr/local/go
export GOPATH=/Users/Calm/go/code1
export GOBIN=$GOROOT/bin
export PATH=$PATH:$GOBIN

及时生效,请执行命令:source ~/.zshrc
验证是否安装成功,命令行下执行:

1
2
go version
go version go1.12 darwin/amd64

出现错误 zsh: command not found: go 原因是 oh my zsh 所加载的环境变量与 Mac 本身自带的环境变量不同
利用 ln 命令,在终端设置建立一个同步的链接
运行 sudo ln -fs /usr/local/go/bin/go /usr/local/bin/go

目录结构

bin

存放编译后可执行的文件。

pkg

存放编译后的应用包。

src

存放应用源代码。

命令

go build

生成二进制文件

1
2
3
4
5
$ go build hello.go 
$ ls
hello hello.go
$ ./hello
Hello, World!

go clean

移除当前源码包和关联源码包里面编译生成的文件

参数

  • -i 清除关联的安装的包和可运行文件,也就是通过 go install 安装的文件
  • -n 把需要执行的清除命令打印出来,但是不执行,这样就可以很容易的知道底层是如何运行的
  • -r 循环的清除在 import 中引入的包
  • -x 打印出来执行的详细命令,其实就是 -n 打印的执行版本
1
2
3
4
$ go clean -i -n
cd /Users/astaxie/develop/gopath/src/mathapp
rm -f mathapp mathapp.exe mathapp.test mathapp.test.exe app app.exe
rm -f /Users/astaxie/develop/gopath/bin/mathapp

go install

会把编译好的结果移动到 $GOPATH/bin。

go run

编译并运行 Go 程序

go test

会自动读取源码目录下面名为 *_test.go 的文件,生成并运行测试用的可执行文件

1
2
3
4
ok   archive/tar   0.011s
FAIL archive/zip 0.022s
ok compress/gzip 0.033s
...

go fmt

格式化代码,将代码修改成标准格式

其它命令

1
2
3
4
go version 查看 go 当前的版本
go env 查看当前 go 的环境变量
go list 列出当前全部安装的 package
go run 编译并运行 Go 程序

2、语言基础

定义变量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 定义一个名称为 “variableName”,类型为 "type" 的变量
var variableName type
// 定义三个类型都是 “type” 的变量
var vname1, vname2, vname3 type
// 初始化 “variableName” 的变量为 “value” 值,类型是 “type”
var variableName type = value
/*
定义三个类型都是 "type" 的变量, 并且分别初始化为相应的值
vname1 为 v1,vname2 为 v2,vname3 为 v3
*/
var vname1, vname2, vname3 type= v1, v2, v3

//:= 这个符号直接取代了 var 和 type 这种形式叫做简短声明
vname1, vname2, vname3 := v1, v2, v3

#Go 对于已声明但未使用的变量会在编译阶段报错

常量

1
const constantName = value

基础类型

Boolean

数值类型

整数类型
直接定义好位数的类型:rune, int8, int16, int32, int64byte, uint8, uint16, uint32, uint64
其中 runeint32 的别称,byteuint8 的别称。

浮点类型
float32float64 两种(没有 float 类型),默认是 float64
complex64

字符串

Go 中的字符串都是采用 UTF-8 字符集编码。字符串是用一对双引号("")或反引号括起来定义,它的类型是 string


Go入门
https://calmchen.com/posts/3e80a85d.html
作者
Calm
发布于
2022年8月2日
更新于
2022年8月2日
许可协议