环境安装
本机系统:Windows 11 专业版 21H2
Go 版本:1.16.5 windows/amd64
下载安装包
安装完成后检查
1
2PS D:\Project\godemo> go version
go version go1.16.5 windows/amd64检查 Go env
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37PS D:\Project\godemo> go env
set GO111MODULE=on
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\zhang\AppData\Local\go-build
set GOENV=C:\Users\zhang\AppData\Roaming\go\env
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=C:\Users\zhang\go\pkg\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=C:\Users\zhang\go
set GOPRIVATE=
set GOPROXY=https://goproxy.cn,direct
set GOROOT=D:\Program Files\Go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=D:\Program Files\Go\pkg\tool\windows_amd64
set GOVCS=
set GOVERSION=go1.16.5
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=NUL
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\zhang\AppData\Local\Temp\go-build3804193883=/tmp/go-build -gno-record-gcc-switchesHello World
1
2
3
4
5
6
7package main
import "fmt"
func main() {
fmt.Println("Hello World!")
}命令行执行:
1
2PS D:\Project\godemo> go run main.go
Hello World!Go 命令
1 | PS D:\Project\godemo> go |
go run main
不生成任何文件只运行程序。
go build main
在对应当前目录下编译生成文件。
go install main
会把编译好的结果移动到 $GOPATH/bin。
go fmt main
格式化代码,将代码修改成标准格式。
开发工具
VS code
![]()
常量与变量
数据类型
空值:nil
整型:
- int8, int16, int32, int64
- uint8, uint16, uint32, uint64
- int, uint, 具体长度取决于 CPU 位数
浮点数:
- float32
- float64
字节:byte (等价于uint8)
字符串:string
只能用一对双引号(””)或反引号(``)括起来定义,不能用单引号(’’)定义!
布尔值:boolean
只有 true 和 false,默认为 false。
常量声明
常量,在程序编译阶段就确定下来的值,而程序在运行时无法改变该值。
单个常量声明
const 变量名称 数据类型 = 变量值
如果不赋值,使用的是该数据类型的默认值。
const 变量名称 = 变量值
根据变量值,自行判断数据类型。
多个常量声明
- const 变量名称,变量名称 … ,数据类型 = 变量值,变量值 …
- const 变量名称,变量名称 … = 变量值,变量值 …
1 | // constant.go |
运行结果:
1 | PS D:\Project\godemo> go run constant.go |
变量声明
单个变量声明
var 变量名称 数据类型 = 变量值
如果不赋值,使用的是该数据类型的默认值。
var 变量名称 = 变量值
根据变量值,自行判断数据类型。
变量名称 := 变量值
省略了 var 和数据类型,变量名称一定要是未声明过的。
多个变量声明
- var 变量名称,变量名称 … ,数据类型 = 变量值,变量值 …
- var 变量名称,变量名称 … = 变量值,变量值 …
- 变量名称,变量名称 … := 变量值,变量值 …
1 | // variable.go |
运行结果:
1 | PS D:\Project\godemo> go run variable.go |
输出方法
fmt.Print
输出到控制台(不换行)
fmt.Println
输出到控制台并换行
fmt.Printf
仅输出格式化的字符串和字符串变量(整型和整型变量不可以)
fmt.Sprintf
格式化并返回一个字符串,不输出
1 | // output.go |
运行结果:
1 | PS D:\Project\godemo> go run output.go |
