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 的工具还算好用,在这里推荐一下

学习视频

你可能感兴趣的:(golang)