我有一个带有以下目录结构的go项目
utils(pkg)
| auth.go (has a function names test1)
controllers(pkg)
| login.go (has a function names test2)
Run Code Online (Sandbox Code Playgroud)
我正在尝试从login.go访问函数test1.这就是我所做的
import "../utils"
func test2(c *gin.Context) bool{
utils.test1()
}
Run Code Online (Sandbox Code Playgroud)
但我总是得到Unresolved reference test1
.我是新来的.任何人都可以帮助我为什么会收到此错误?
在我的Go项目中,我想将一些通用功能分解为Go模块,与主项目分开.我在GOPATH之外这样做是为了与go的未来保持一致.我不想在GitHub或其他任何地方发布模块.
我将此模块导入主项目的所有尝试都会导致:
cannot find module for path X
Run Code Online (Sandbox Code Playgroud)
我已经go mod init X
在模块的文件夹中运行了.其go.mod
文件的内容是:
module X
Run Code Online (Sandbox Code Playgroud)
构建或安装此模块似乎什么都不做.我没有发现它的迹象$GOPATH/pgk/mod
.
我尝试了各种import语句:
import "X"
import "../x"
(模块目录的相对路径)import "../x/X"
(目录+模块名称的路径)救命!
当我使用 go get 安装包时,在 golang 模块模式下,这些安装在 go 根文件夹中。
我希望能够以 npm 或 yarn 为 node.js、全局或本地的相同方式安装模块。
实现这种行为的正确方法是什么。
谢谢。
问题焦点在标题末尾。尽了我的想象。
想象一下,你在核战争中幸存下来,你只是幸存者团队,在你的自动化保险库中,偶尔用 golang 编写操作逻辑。
现在,由于(现在众所周知的)代码错误,您的金库在氧气供应方面(金库内)出现了一些问题。作为程序员,您应该明确修复它!你一定有一个问题,定义什么github.com/...
或者mydomain.com
是,有没有上网了,无论你想在本地与域打扰!
您有以下文件夹结构:
vault/
main.go
oxygenapi/
oxygenapi.go
Run Code Online (Sandbox Code Playgroud)
在里面main.go
你确实有:
package main
import "./oxygenapi"
...
Run Code Online (Sandbox Code Playgroud)
并oxygenapi.go
开始于:
package oxygenapi
...
Run Code Online (Sandbox Code Playgroud)
通常情况下,不会喜欢模拟本地git
服务器(git 源被烧毁,在核战争期间,它们没有单一源,并且您在 git 上拥有所有内容,只是您工作源树的一些本地副本)
您现在只想导入系统工作,因为它与氧气供应有关。你没时间了!现在,想象一下尽快恢复它是至关重要的!
但是您不能再重新编译它,因为不再存在互联网。它给出以下错误:
D:\vault> go run .
build _/D_/vault/oxygenapi: cannot find module for path _/D_/vault/oxygenapi
Run Code Online (Sandbox Code Playgroud)
我应该用 C 编写它吗?PASCAL?VISUAL BASIC?为什么我们选择了 go?.. 这种语言应该继续存在吗?