出现错误原因引入包的路径错误go引入包时有其自己查找方式如下

在 GOPATH 模式下,执行 go buildgo run 时,在 vendor 目录、GOPATH 目录、GOROOT 目录可能存在依赖库(标准库、第三方库等),将依次按照如下目录过程寻找引用依赖

  1. 当前目录下的 vendor 目录查找依赖package
  2. 当前目录存在 vendor 目录,则去上一级目录寻找
  3. 重复步骤 2 直到进入 $GOPATH/src 目录
  4. 没有在 vendor 目录中查找到依赖包,则进入 $GOROOT 目录查找依赖
  5. $GOPATH 目录也没有依赖包,则进入 $GOROOT 目录寻找依赖

在GOPATH目录下没有找到包,最后就会去GOROOT下查找,最终没有找到就会报错

如下在GOPATH目录下,创建src/hello目录,在创建main.gotest.go两个源文件内容如下:

package main

import "fmt"

import "unit4/src/hello/test"

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

	test.PrintTest()
}
package test
import "fmt"

func PrintTest(){
	fmt.Println("test")
}

在这里插入图片描述

运行时却报错了,如下:

在这里插入图片描述

这里违反了go管理原则一个文件需要一个独立的报下,而上面的maintest同在hello目录下,是错误的。

由于包在管理文件时,文件必须要在独立包下,所以兴建一个test目录,将test.go源文件移动到test包下,如下:

在这里插入图片描述

重构包后在需要文件引入testimport "unit4/src/hello/test"

需要注意的是,这里路径表示的意义是:项目根目录/src/包目录。最终到包目录即可

可以看出,在到入包是只导入到了包目录,引用时也是基于包名引用的,因此源文件名称没有作用。也就是说,test.go文件可以任意命名,因为在包管理下,其作用的主要是包名

如下改为xxx.go后仍然可以运行

在这里插入图片描述
在这里插入图片描述

解包引入原理正确写入路径即可

原文地址:https://blog.csdn.net/xwh3165037789/article/details/129846879

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_47480.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注