Golang初学者的踩坑之旅

库洛琪 · · 1354 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

GOROOT与GOPATH

重点说一下这个GOPATH,可以设置为任意路径,例如我设置为GOPATH=C:\Users\fan\go,然后在下面新建3个文件夹,pkgsrcbin,当你使用go get命令时,下载的package就会放到src目录下,一些可执行文件会放到bin目录下,例如一些工具。

1.1 bin目录下的一些可执行文件

在不使用依赖管理工具的情况下,我们新建项目都需要放在src目录下,或者将项目路径加入到GOPATH中,否则build时无法找到相关依赖。

// 例如我新建了kafka-connector,目录树如下
fan/go/src
----kafka-connector
--------consumer
------------consumer.go
--------producer
------------producer.go
--------main.go

在main.go中需要使用consumer.go(package consumer)和producer.go(package producer)中定义的函数,采用以下方法引入:

import (
    "kafka-connector/consumer"
    "kafka-connector/producer"
)

Packages的引入

由于一些网络原因,部分package无法使用go get的方式直接下载。刚开始学习的时候,大多数人遇到的就是以golang.org/x开头的相关package无法下载。由于这些无法下载的包都是托管在github上的,可以采取间接的方式来下载。

  1. 首先找到所需要的package在github上的位置,例如我们需要golang.org/x/text下的包:
// github仓库位置
https://github.com/golang/text
  1. 使用git clone命令下载到本地
// 我的电脑上GOPATH=C:\Users\fan\go
// 在C:\Users\fan\go\src\golang.org\x\目录下执行(路径不存在就需要新建相关文件夹):
> git clone https://github.com/golang/text
  1. 使用go install编译安装
// 需要注意在本例中不是 go install github.com/golang/text
>go install golang.org/x/text
// 然后就可以使用相关package了
> import "golang.org/x/text/transform"

其他无法正常下载的package都可以采用这种方式,例如: google.golang.org/grpc

Go module

这个GOPATH其实有点烦人,同时依赖的管理比较麻烦。所以出现各种依赖管理工具,目前官方有正式的依赖管理工具。可以参考以下文章:

  1. Introduction to Go Modules
  2. 跳出Go module的泥潭

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:库洛琪

查看原文:Golang初学者的踩坑之旅

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1354 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传