我当前的目录设置如下:-- /webserver | /ftp |-> ftp.go |-> go.mod |->server.go |->go.mod服务器.go 页面标题package mainimport ( [..] "../webserver/ftp" // issue package)func main() { [..] ftp.test()}页面package ftpimport "fmt"func test() { fmt.Println("YES!")}这是我在控制台“PROMBLEMS”选项卡中似乎无法理解的部分,ftp.go文件被保存。在我保存服务器.go文件之前,请使用“../网络服务器/ftp/“ 控制台显示以下内容:当我保存服务器.go时,它会删除“./网络服务器/ftp”,我甚至将其添加到go src中,使其成为“ftp”而不是“..。/网络服务器/ftp“。我得到同样的结果。不知道我做错了什么。基本上,我想完成的是:有一个函数文件夹,并在该文件夹中有函数(函数.go),以保持server.go页面尽可能干净。
1 回答
PIPIONE
TA贡献1829条经验 获得超9个赞
你在这里有几个问题。
ftp/go.mod
不应该存在。虽然可以在单个存储库中拥有多个 Go 模块,但这是非常高级的用法,并且很少有用。除非您绝对知道自己需要此功能,并且已经非常习惯于创建和发布 Go 模块,否则请不要这样做。Go 不支持相对导入。 是无效的导入路径*。使用完全限定的导入路径,即
import "../webserver/ftp"
import "github.com/username/projectname/webserver/ftp"
此处使用的路径取决于您在顶级文件行上声明的模块名称。
module
go.mod
不能导入未导出的值。
已在 中定义。这是未导出的,因为它以小写字母开头。只有函数、变量或其他以大写字母开头的符号才会在 Go 中导出。请尝试。
func test() string
ftp.go
func Test() string
*有些人会说“但是我用过,它起作用了!是的,它可以在非常特殊的情况下工作。但它的行为并不可靠,因此您永远不应该依赖它,除非在非常特定测试类型的情况下。import ".../foo"
- 1 回答
- 0 关注
- 50 浏览
添加回答
举报
0/150
提交
取消