下载Go
直接点Download,然后根据你自己的操作系统进行下载,我这里以win10为例
安装go
默认安装到C:\Program Files\Go,这里我们可以选择安装到其他盘,也可以选择默认安装。初学者建议直接一路next。
安装完成后Win + S 输入cmd,输入以下命令查看是否安装成功
powershell
go env
输出内容如下:
C:\Users\X>go env
set GO111MODULE=on
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\X\AppData\Local\go-build
set GOENV=C:\Users\X\AppData\Roaming\go\env
#打包后的二进制可执行文件后缀名,不同系统后缀名不一样,windows是.exe
set GOEXE=.exe
set GOEXPERIMENT=
set GOFLAGS=
#操作系统的架构
set GOHOSTARCH=amd64
#操作系统
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=C:\Users\X\go\pkg\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
#工作目录,这个可以设置系统变量进行修改
set GOPATH=C:\Users\X\go
set GOPRIVATE=
#设置代理,因为国内很大概率无法访问google官网进行下载某些插件或依赖
set GOPROXY=https://goproxy.io,direct
#安装路径
set GOROOT=D:\softwareWork\Go
set GOTMPDIR=
set GOTOOLCHAIN=auto
#工具文件夹路径
set GOTOOLDIR=D:\softwareWork\Go\pkg\tool\windows_amd64
set GOVCS=
#版本
set GOVERSION=go1.22.2
set GCCGO=gccgo
set GOAMD64=v1
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=0
set GOMOD=NUL
set GOWORK=
set CGO_CFLAGS=-O2 -g
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-O2 -g
set CGO_FFLAGS=-O2 -g
set CGO_LDFLAGS=-O2 -g
#打包配置
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -fno-caret-diagnostics -Qunused-arguments -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=C:\Users\X\AppData\Local\Temp\go-build1065635485=/tmp/go-build -gno-record-gcc-switches
配置代理
win+s输入cmd,然后输入
powershell
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.io,direct
打开IDEA安装Go插件
无法安装的话,直接去IDEA下载插件对应IDEA的版本安装,版本太高可能无法安装成功,无法安装成功就降版本。
创建项目
示例代码,如下:
go是根据命名的首字母来区分是public还是private
大写字母开头表示public可以在外部包和内部包调用
小写字母开头表示private只允许所在包(内部包)调用
go
// 当前程序包名
package main
//导入其它的包
import (
"fmt"
)
// 定义一个名为HELLO的常量,赋值为Hello world.【可以看到这里和Java有区别,它可以不用声明变量的类型,因为Go有类型推断】
const HELLO = "Hello world."
// 定义一个名为num的全局变量,赋值为1
var num = 1
// 声明变量类型为int,名为number,不能赋值
type number int
// 声明一个名为User的结构【类似于Java的类】
type User struct {
//变量名 类型【跟Java是反着来的,Java是先定义类型,再定义变量名】
name string
age int
}
// 声明一个名为MyInterface的接口【跟Java的接口差不多】
type MyInterface interface {
}
// 主程序【跟Java的main方法差不多,只不过Go的main方法没有入参(String args)和反参(void)】
func main() {
//调用fmt的Println输出内容到控制台方法,传入我们定义的HELLO常量
fmt.Println(num)
fmt.Println(number(2))
fmt.Println(HELLO)
}
运行程序输出:
go
1
2
Hello world.