简介
第三方包获取:pkg.go.dev/
特点:
- 天生支持并发
- 语法简单,容易上手
- 内置runtime,支持垃圾回收
- 可直接编译成机器码,不依赖其他库
- 丰富的便准库
- 可跨平台编译
- 部署维护成本低
安装后的配置
设置GOPROXY
# 获取依赖包的代理,修改为国内的
go env -w GOPROXY=https://goproxy.cn,direct
设置GOPATH
在环境变量里面设置
需要安装的依赖包:
go get -v golang.org/x/tools/gopls
go get -v github.com/stamblerre/gocode
go get -v github.com/uudashr/gopkgs/v2/cmd/gopkgs
go get -v github.com/ramya-rao-a/go-outline
依赖包说说明
- golang.org/x/tools: 提供了一系列用于开发Go语言的工具,如gopls等
- golang.org/x/tools/gopls: 是一个基于Go语言的代码补全和导航工具,它可以帮助开发者更高效地编写和调试Go代码
- golang.org/x/telemetry: 提供了一套用于收集和分析应用程序性能数据的库
- github.com/sergi/go-diff: 是一个用于比较两个Go源代码文件差异的工具
- honnef.co/go/tools: 提供了一些用于处理Go源代码的工具,如goimports(自动导入缺失的包)等
- mvdan.cc/gofumpt: 是一个用于格式化Go源代码的工具,它可以自动调整代码格式以符合Go语言的最佳实践
- mvdan.cc/xurls/v2: 是一个用于解析URL的库,它可以将URL分解为各个组成部分,方便开发者处理
- golang.org/x/mod: 是一个用于管理Go模块的库,它可以帮助你更好地组织和管理项目的依赖关系
- golang.org/x/sync: 提供了一组同步原语,如互斥锁、条件变量等,用于实现多线程编程中的同步机制
- golang.org/x/text: 提供了一个用于处理Unicode文本的库,它可以帮助你更方便地处理和操作文本数据
- golang.org/x/exp/typeparams: 提供了一个用于处理类型参数的库,它可以帮助你更方便地处理泛型编程中的类型参数问题
- golang.org/x/sys: 提供了一个用于访问操作系统功能的库,它可以帮助你更方便地处理操作系统相关的任务
- golang.org/x/vuln: 提供了一个用于管理已知安全漏洞的库,它可以帮助你更容易地识别和修复项目中的安全漏洞
- github.com/stamblerre/gocode: 提供Go语言的代码自动补全功能,用于IDEs和编辑器
- github.com/uudashr/gopkgs/v2/cmd/gopkgs: 命令行工具,帮助发现和使用Go语言软件包
- github.com/ramya-rao-a/go-outline: VSCode插件,为Go源代码文件生成结构大纲以便于导航
命令
#初始化一个模块
go mod init example.com/greetings
#移除未使用的依赖,添加缺少的依赖,更新依赖信息
go mod tidy
# 编译运行程序
go run .
# 运行测试
go test
go test -v
# 编译包及其依赖项,但不安装结果
go build
#编译并安装软件包
go install
# 列出安装路径
go list -f '{{.Target}}'
# 将安装路径加入Path
# Linux/Mac
export PATH=$PATH:/path/to/your/install/directory
# window
set PATH=%PATH%;C:\path\to\your\install\directory
不一样语法
:= :定义并初始化变量,会根据右侧数据推断类型
message := fmt.Sprintf("Hi, %v. Welcome!", name)
// 等价与下面这个
var message string
message = fmt.Sprintf("Hi, %v. Welcome!", name)
参考资料:
查看更多,请到这里