设置Golang的开发环境

 

Golang开发环境涉及以下两个方面:

  • 语言环境
  • IDE设置

 

语言环境就是要安装golang,golang的安装有如下方式

Golang安装

1、安装文件安装

你可以在https://golang.google.cn/dl/ 这里下载golang的安装文件

2、包管理器安装

以ubuntu为例

sudo apt-get install golang

安装后可以查看下具体的安装版本

go version

由于我是mac我就直接brew install 安装

brew install go
  • 设置环境变量

golang的环境变量主要是下面三个

GOROOT:Go 语言安装根目录的路径,也就是 GO 语言的安装路径。

GOPATH:若干工作区目录的路径。是我们自己定义的工作空间。

GOPROXY:给go安装第三方包设置代理用的,由于github的访问问题一般设置国内镜像

参考极客时间 https://time.geekbang.org/column/article/12959

GOROOT="/usr/local/Cellar/go/1.13.5/libexec"

GOPATH="/Users/workspace/go"

GOPROXY="https://goproxy.cn,direct"

添加到.zshrc文件中

echo "export GOPATH=~/workspace/go" >> ~/.zshrc

已知vscode有个报错和GOPATH和GOROOT设置有关,在import 包fmt报 "could not import fmt". 

就是GOPATH和GOROOT下没有go的src目录导致

 

  • IDE设置

我自己使用的VisualStudioCode(免费还好用)

1、安装go扩展

主要就一下几个

go官方

go nightly

go doc

2、设置IDE go自动补全

参考 https://abelsu7.top/2019/09/06/gopls-guide/ VS Code 中使用 gopls 补全 Go 代码

settings.json加上

    "[go]": {
        "editor.snippetSuggestions": "none",
        "editor.insertSpaces": false,
        "editor.formatOnSave": true,
        "editor.codeActionsOnSave": {
            "source.organizeImports": true
        },
        "editor.suggest.snippetsPreventQuickSuggestions": false
    },
    "gopls": {
        "usePlaceholders": true // add parameter placeholders when completing a function
    },

3、VSCode的go开发tools

通过cmd+shift+p ,command palette,执行Go:Install/Update Tools

全部勾选安装就行

 

4、设置Debug

暂时只设置了文件的调试,可以添加调试服务器debug

    "configurations": [
        {
            "name": "Launch file",
            "type": "go",
            "request": "launch",
            "mode": "debug",
            "program": "${file}"
        },

    ]

 

写段简单代码验证下

package main

import (
	"fmt"
	"sort"
)

type pair struct {
	key   string
	value int
}

type pairSlice []pair

func (p pairSlice) Len() int {
	return len(p)
}

func (p pairSlice) Swap(i, j int) {
	p[i], p[j] = p[j], p[i]
}

func (p pairSlice) Less(i, j int) bool {
	return p[i].value < p[j].value
}

func main() {
	var m = make(map[string]int)
	m["admire"] = 0
	m["blue"] = 1
	m["acquire"] = 2
	m["decend"] = 3
	m["abuse"] = 4

	var pairs = pairSlice{}

	// 到这里map结构是很乱的,下面我们来排序
	// map排序,无论怎么实现我理解都是再用一个容器来记录
	// 有序的结构,然后迭代的时候就可以有序
	for k, v := range m {
		fmt.Println(k, ":", v)
		p := new(pair)
		p.key = k
		p.value = v
		pairs = append(pairs, *p)
	}

	fmt.Println(pairs)

	// 打印分隔符
	fmt.Println()
	fmt.Println("-------------------------------")
	sort.Stable(pairs)

}

保存为sortmap.go,命令行执行下

$go run sortmap.go
admire : 0
blue : 1
acquire : 2
decend : 3
abuse : 4
[{admire 0} {blue 1} {acquire 2} {decend 3} {abuse 4}]

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值