乐趣区

golang-入门

本文章使用的是 go1.13,使用的系统为 mac os

最近在学习 go,吧自己在学习 go 中遇到的一些问题记录一下

安装

推荐使用 gvm 安装

gvm 是一个管理 go 版本的工具

安装步骤

bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)

gvm install go1.13 -B

gvm use go1.13  --default

在使用 gvm 的过程中遇到了一些问题,在 gvm 的 read.md 中建议先安装 go1.4 然后在安装别的,我安装了好几次都失败了,最后卸载了 gvm 然后使用直接使用上面的 命令就成功了(mac 系统)

环境变量介绍

GPROOT 指定 go 程序的安装位置(可以不管)
GOPATH 定义工作空间

go 规定你的工作空间必须在 GOPATH 下,分为三个目录

bin 存放 build 之后的二进制文件
src 存放源码
pkg 存放模块编译之后的文件

PATH 设置 PATH 是为了能够方便的运行 go 编译之后的文件,所以讲 GO_PATH/bin 添加到 PATH

Hello World

创建 hello.go 并写入如下内容

package main

import "fmt"

func main(){fmt.Println("Hello World")
}

一个 go 的 hello world 的程序就完成了,执行 go run hello.go

包管理

当我使用 go 开发项目的时候发现 go 的包管理有很多种方式,不过在 go1.11 之后还是推荐大家使用 go modules

使用条件

项目的目录不在 GOPATH 目录下

使用方法

go mod init < 模块名称 >  ## 创建  go.mod   模块名称使用来调用当前目录的模块的
go get < 模块名称 >  ## 安装依赖包

go 命令会根据 go.mod 中定义的版本下载对应的依赖,如果你的代码中引入了包没有在 go.mod 中 go 命令会现在最新的包并且吧依赖关系放到 go.mod 中

go mod 超时的问题 设置 export GOPROXY=”https://goproxy.io” 使用这个代理将不会有超时的问题

经验

在开发 web 项目的过程中需要频繁的重启服务,之前写 node 的时候有一个 nodemon 的工具,在写 go 的时候也找了找,找到一个 gowatch 的工具还算好用,在这里推荐一下

学习视频

退出移动版