nsq.reader错误connection closed

golang的import原理

妙音 posted @ 2021年3月28日 12:20 in golang , 820 阅读

描述

 
import是个很重要的东西,golang是怎么import的
 
1. import查找包的顺序?
 
2. import的是什么,包还是路径?
 
3. 自己项目中怎么import
 

golang的包管理历史

 
第一阶段 早期golang,import是直接查找$GOPATH/scr,$GOROOT/scr目录
 
第二阶段 v1.5开始采用vendor模式,每个项目有一个vendor目录,存放依赖包
 
第三阶段 v1.12开始增加了go mod用于管理依赖包
 
部分学习资料比较早,介绍的还是第一、二阶段,从我们直接学习go mod就可以
 

go mod的import顺序

 
1. 在当前项目目录查找module。找到module后,用module_name加相对路径导入。import "module_name/路径xxx..."
 
2. 未找到,则逐级查找上级目录的go.mod
 
3. 未找到,则再找$GOPATH,$GOROOT
 

module和package是怎么回事?

 
go只有package,并没有module的概念, go mod才引入,
 
module可以理解为python的包或者java的jar包。package的集合.
 

import的是什么?

 
import的是目录, 由于一个目录只能有一个package, 实际也是import包
 
例如 import "gin-template/db/api"
 
1. 如果目录名与package名一致。 api.xxx方式使用包
 
2.如果目录名与pakcage名不一致(目录名api,包名abc)。 abc.xxx方式使用
 
3.总结:import的是目录下的package。引用方式是, 包名.xxx
 
 

自己项目中怎么引用

 
import module_name/包的目录路径
 
 

与其它语言比较

 
python中import的是py文件/py文件中的属性
 
java中import的是java文件中的class
 
golang中import的是目录下的package
 
 
Avatar_small
Imamia Quran Academy 说:
2023年7月16日 05:52

Hi, first of all, thank you for all this information. Personally I was able to vote on your form and I am very happy with it. I am from Imamia Quran Academy.Online Shia Yassarnal Quran is the source to learn Arabic letters and diacritics. One, including both kids and adults, must necessarily learn the basics for the correct recitation of the Quran.


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter