赞
踩
Go下载:https://golang.google.cn/dl/
Visual Studio Code安装包:https://code.visualstudio.com/Download
goLand下载地址:https://www.jetbrains.com/go/?fromMenu
Go
编译语言---->易于开发,编译速度快,高效执行
官网:github.com/golang
Python
动态脚本语言
Go 像Python一样简洁,向c++一样快(执行速度)
大道至简,小而运真
对于c#
有回收机制
对于java
代码简单
对于php
速度更快
对于Python/Ruby
代码既简洁又快
官网:github.com/golang
面向对象:使用类型,组合,接口来实现面向对象思想
反射CGO:用于调用C语言的模块
自动
垃圾回收
静态编译
高并发
交叉编译
易于部署
基于BSD
协议,完全开放
使用场景:
服务端开发
:日志处理,数据打包,虚拟机处理,文件系统,分布式,数据库代理等
网络编程
:Web,API应用,下载
内存数据库
云平台
机器学习
下载地址
https://golang.org/dl/
https://golang.google.cn/dl/
Go会自动化配置环境变量
GOROOT:go安装路径
GOPATH: go的工作空间,不能与GOROOT相同
(设置为用户变量,系统变量
—看自己)
在PATH环境变量中加入
在GoPath中创建以下目录:工作目录
src
是go的源文件,主要
pkg
是go的包
对象,也就是编译好的文件,以 .a
结尾
bin
可执行文件
在cmd中检查
查看变量
go env
查看版本
go version
1、**GO111MODULE**
环境变量主要是用来开启或关闭模块支持的
它有三个可选值:off、on、auto,默认值是 auto。
GO111MODULE=off
无模块支持,go 会从 GOPATH 和 vendor 文件夹寻找包。
GO111MODULE=on
模块支持,go 会忽略 GOPATH 和 vendor 文件夹,只根据 go.mod 下载依赖。
GO111MODULE=auto
在 $GOPATH/src 外面且根目录有 go.mod 文件时,开启模块支持。
恢复
GO111MODULE的默认值
go env -u GO111MODULE
新版本需要模块支持,也就是会忽略忽略 GOPATH 和 vendor 文件夹
这里需要:修改
go env -w GO111MODULE=on
2、配置代理:七牛
或 https://mirrors.aliyun.com/goproxy
go env -w GOPROXY=https://goproxy.cn,direct
检查一下
go env
SET CGO_ENABLED=0 // 禁用CGO
SET GOOS=linux // 目标平台是linux
SET GOARCH=amd64 // 目标处理器架构是amd64
使用了cgo的代码是不支持跨平台编译的
然后再执行go build命令,得到的就是能够在Linux平台运行的可执行文件了。
Mac 下编译 Linux 和 Windows平台 64位 可执行程序:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
Linux 下编译 Mac 和 Windows 平台64位可执行程序:
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
Windows下编译Mac平台64位可执行程序:
SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
在GOPATH中创建一个文件夹,在文件夹中创建一个.go
结尾的文件
package main
import "fmt"
func main() {
fmt.Println("Hello World")
}
go run 会直接执行该程序
go build 会生成一个.exe
结尾的可执行文件,也可以指定生成的文件名
go install
,也可以,会直接可执行文件放到bin
目录下面
如果出现错误
go env -w GO111MODULE=auto
4. go install
也可以运行 包
文件-----会直接放到pkg目录下面,以.a
结尾
下载tar.gz包
配置环境变量
下载地址:
最新
老版本
优点:不需要第三方插件
缺点:收费
激活:方法一
汉化需要重启GoLand
可变大小ctrl+鼠标,调整大小
去掉参数提示
打开已经写好的文件
免费
优点:有第三方插件
安装包https://code.visualstudio.com/Download
System Installer版
:安装在非用户目录,例如C盘根目录,任何帐户都可以使用。(建议使用此版本)
官网链接
https://az764295.vo.msecnd.net/stable/c185983a683d14c396952dd432459097bc7f757f/VSCodeUserSetup-x64-1.55.0.exe
我们看到前面的域名是az764295.vo.msecnd.net
,你只要将这个域名改为 vscode.cdn.azure.cn
就可以。
变成
https://vscode.cdn.azure.cn/stable/c185983a683d14c396952dd432459097bc7f757f/VSCodeUserSetup-x64-1.55.0.exe
配置系统变量----同上
然后运行go version
不过这种方法极不推荐,因为你不可能只有一个项目,我们每个项目都有自己的 GOPATH
。习惯的做法是可以使用 go env
命令来设置
$ go env -w GOPATH=E:\VMP-Code\Golang
如果你已经
在系统的环境变量中设置了 GOPATH ,那么一定移除掉,才能使用 go env -w
去设置,会报错
warning: go env -w GOPATH=... does not override conflicting OS environment variable
如果你移除了还报这个错误,那可能需要你重启电脑(反正我是这样)
在vsc菜单栏依次选择 文件–首选项–设置
,然后 打开settings.json
全局–后面没有工作区
单独设置工作区的配置–也就是在一个项目下的变量值
设置完之后会出现
1 . 先下载windows版的git
找到工具
vscode-go
go get -u -v github.com/nsf/gocode
go get -u -v github.com/uudashr/gopkgs/cmd/gopkgs
go get -u -v github.com/rogpeppe/godef
go get -u -v github.com/alecthomas/gometalinter
go get -u -v github.com/haya14busa/goplay/cmd/goplay
go get -u -v github.com/tylerb/gotype-live
go get -u -v github.com/davidrjenni/reftools/cmd/fillstruct
go get -u -v github.com/sourcegraph/go-langserver
go get -u -v github.com/fatih/gomodifytags
go get -u -v github.com/ramya-rao-a/go-outline
go get -u -v github.com/acroca/go-symbols
go get -u -v golang.org/x/tools/cmd/guru
go get -u -v golang.org/x/tools/cmd/gorename
go get -u -v golang.org/x/tools/cmd/godoc
go get -u -v github.com/zmb3/gogetdoc
go get -u -v golang.org/x/tools/cmd/goimports
go get -u -v github.com/golang/lint/golint
go get -u -v github.com/sqs/goreturns
go get -u -v github.com/josharian/impl
go get -u -v sourcegraph.com/sqs/goreturns
go get -v -u github.com/peterh/liner github.com/derekparker/delve/cmd/dlv
go get -u -v github.com/cweill/gotests/...
go get -u -v honnef.co/go/tools/...
需要将一下的东西解压到GOPATH目录中去
有些包需要手动解压缩到这儿
手动创建目录,右键目录,选择git here
(前天装了git)
在命令行执行git clone 网址
在%GOPATH%\src\目录下,创建golang.org文件夹;
然后在%GOPATH%\src\golang.org\目录下创建名称为x的文件夹;
打开cmd,cd进入%GOPATH%\src\golang.org\x目录;
输入git clone https://github.com/golang/tools.git tools -->回车,并等待下载完成;
完成后,%GOPATH%\src\golang.org\x目录下,会多出来一个tools的文件夹;
最后重新 go get上面第6步的go插件即可;
编写完代码后,想运行这个 go 文件,通常情况下你得通过下面 VSCODE 提供的入口去运行,是比较麻烦的。
点击 create a launch.json file
就会在项目根目录下创建一个 json 文件,创建完成后,运行的边栏就变成如下模样,再点击 那个三角运行按钮,就可以运行它了。
使用这种方法,需要安装一个 dlv
,VS Code 会提示你安装它,安装完成后你会在 bin 目录下发现 dlv.exe
。
这种运行方法,虽然可行,但是操作路径还是有点长。
最符合用户使用习惯的应该是,直接有一个 运行 的按钮的,例如这样
或者通常快捷键,或者右键就有运行的选择项。
VS Code
本身不提供这样的功能,你需要安装一个叫 Code Runner
的扩展,安装后不需要重启 VS Code 就会失效
使用 Ctrl + Alt + N
,或者右键选择 Run Code 就可以执行该 go 文件。
由于国内的一些网络问题,导致我们无法直接拉取 go 的一些工具包,这时候就要借助大神们搭建的代理地址来下载了。
最经常使用的是代理地址是:https://goproxy.cn
go env -w GOPROXY=https://goproxy.cn,direct
创建目录 src/goland.org/x/
,并进入此目录,执行命令
$ git clone https://github.com/golang/tools.git
$ git clone https://github.com/golang/lint.git
随便点开一个 go 文件,在你的右下角会提示要你安装一些工具,安装的包有些由于墙的原因,无法下载,为了保证下载顺利,可以设置一下代理。
$ go env -w GOPROXY=https://goproxy.cn,direct
然后再点击 Install All
然后你在 OUTPUT 就能看到安装进度
set GO111MODULE=
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\wangbm\AppData\Local\go-build
set GOENV=C:\Users\wangbm\AppData\Roaming\go\env
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=E:\MING-Code\GoPlayer
set GOPRIVATE=
set GOPROXY=https://goproxy.cn,direct
set GOROOT=D:\Program Files (x86)\Go-1.13.6
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=D:\Program Files (x86)\Go-1.13.6\pkg\tool\windows_amd64
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=
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
想查看几个特定的环境变量就加在 go env 后面
E:\MING-Code\GoPlayer
$ go env GOROOT
D:\Program Files (x86)\Go-1.13.6
$ go env GOPROXY
https://goproxy.cn,direct
以上环境变量很多,这里仅设置下面这两个就足够了
一个是GO111MODULE 设置为 on,表示使用 go modules
模式
$ go env -w GO111MODULE=on
一个是开启代理
,防止下载包失败(前面可能你已经设置过)
$ go env -w GOPROXY=https://goproxy.cn,direct
helloworld.go
package
必须在go源文件开头声明,代码所属包
import
用于导入程序依赖的所有包
func
用于定义函数,main函数是程序的入口,无返回值
fmt.PrintLn
输出
package main
#import "fmt"
import (
"fmt"
)
func main() {
fmt.Println("hello world!!")
}
在cmd执行,注意在制定的问价夹下面
-x 打印编译过程
-work 保存编译过程
-o 输出结果
go build helloworld.go
go build -x -work -o hello.exe helloworld.go
go run 直接运行程序(编译+运行)
go clean 清楚编译文件
会在当前文件夹下面生成一个.exe的文件
dir
最后执行.exe
文件
hello.exe
ctrl+shift+p
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。