go - 如何从相对本地文件夹导入 "include"意义上的 .go 文件

标签 go import module package local

我正在尝试包含一个“.go”文件,其中包含一些我在不同的独立项目中需要的结构声明
目前错误如下:

main.go:8:2: module include@latest found (v0.0.0, replaced by ./include), but does not contain package include/declare
树结构:
/home/dev/go/sample
            include/  
            main.go  
            go.mod

/home/dev/go/sample/include
            declare.go
            go.mod
/home/dev/sample/go.mod 的内容:
go 1.14
module include
replace include v0.0.0 => ./include
/home/dev/sample/include/go.mod 的内容:
module include
go 1.14
require include v0.0.0
replace include v0.0.0 => include
从“main.go”导入:
package main
import (
      "encoding/json"
      "fmt"
      "io/ioutil"
      "os"
      "include/declare"
)
谢谢

最佳答案

在@enzo 提出的刻苦阅读之后,我的请求现在可以使用了
样本结构:

├── go.mod
├── include
│   ├── sourceA.go
│   └── sourceB.go
└── myapp.go
解决方案是在主应用程序级别创建一个简单正确的“go.mod”文件。就我而言,不需要在“包含”文件夹中有一个
go mod init <name of your app>
go.mod 文件的内容:
MyApp module
go 1.14
include/sourceA.go 的内容:
package include

const ValueA = "a value from sourceA.go"

func FunctionA () {
    println("Hello: sourceA.go")
}
include/sourceB.go 的内容:
package include

const ValueB = "a value from sourceB.go"

func FunctionB () {
    println("Hello: sourceB.go")
}
myapp.go 的内容:
package main

import "myapp/include"

func main() {
    include.FunctionA()
    include.FunctionB()
    println(include.ValueA)
    println(include.ValueB)
}
导入管理(一切都是模块/包)在 Go 学徒开始时不一定很容易理解,但一旦“理解”,它就更合乎逻辑,特别是对于“包含”方法比在其他方法中找到它语言。
希望这对其他人更好的代码文件组织有用
(当然有更好的方法,但目前这个满足我的需要)

关于go - 如何从相对本地文件夹导入 "include"意义上的 .go 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63274583/

相关文章:

url - Golang 如何将 punycode 转换为 unicode?

c++ - 导入 .so 时导入语句的顺序是否重要?

python - 从 python 中删除导入的模块

function - Elixir中直接调用模块函数的defdelegate和def有什么区别

wordpress - 是否可以使用 Go 将现有的 CRD 添加到自定义 Kubernetes 运算符中?

csv - Julia :如何从文本文件(csv 与 'columns' 的数量不相等)导入图表?

go - 如何使用 WaitGroup 确保 goroutines 在 for 循环中完成?

magento - 将客户重定向到客户登录网站 Magento 2 的产品页面

go - 如何使用 Go 检索网页并将其转换为 UTF-8

go - 如何在没有模板函数的情况下在 Go 模板中连接字符串?