当前位置: 首页 > 面试题库 >

奇怪的golang包导入问题

漆雕誉
2023-03-14
问题内容

这是目录树:

+/project  
  +---/bin  
  +---/pkg  
  +---/src  
    +---/client_test  
      +---client_test.go  
    +---main.go

在main.go中:

package main
import ("client_test")
func main() {
  client_test.Send()
}

在client_test.go中:

package client_test
func Send() {
}

错误:

src/main.go|8| imported and not used: "client_test"
src/main.go|32| undefined: client_test

我已经阅读了如何在golang中使用自定义软件包?而且我认为我有和这个人一样的解决方案,但是我只是不知道如何解决这个问题。请帮忙。

去环境:

GOARCH="amd64"  
GOBIN="/usr/local/go/bin"  
GOCHAR="6"  
GOEXE=""  
GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread -fno-common"  
GOHOSTARCH="amd64"  
GOHOSTOS="darwin"  
GOOS="darwin"  
GOPATH="/Users/staff/projects/Minigame_Server" (that's exactly my working directory)  
GOROOT="/usr/local/go"  
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"  
CGO_ENABLED="1"

问题答案:

命令去,测试包。

名称与文件模式“ * _test.go”匹配的文件可以包含测试函数,基准函数和示例函数。

不要使用保留名称。例如,将client_testclienttest贯穿始终。



 类似资料:
  • 我有一个相当基本的登录设置(代码如下),其中一些组件需要身份验证。当我导航到http://localhost:8000/时,它会重定向到http://localhost:8000/login,一切正常。如果我随后登录,它将返回到http://localhost:8000/并显示我的主要组件。 但是,当我直接导航到http://localhost:8000/login时,它显示“不能GET/logi

  • 发现了一个非常有趣的问题,在调试后找到了重现它的场景。 因此,如果我有一个具有包范围B的类,它有一些公共方法和扩展它的公共类A: 然后在测试中: 你猜怎么着,我得到了我刚刚抛出的NullPointerException,所以Mockito以某种方式创建了一个“真实”的对象,并调用了一个真正的方法,而不是一个被嘲笑的方法。为什么会这样? 在上面的示例中,我在类<code>B<code>中更改了<co

  • 问题内容: 发现了一个非常有趣的问题,并在调试后找到了重现该问题的方案。 因此,如果我有一个包范围为B的类,该类具有某些公共方法,而公共类A对其进行了扩展: 然后在测试中: 猜猜是什么,我得到了我刚刚抛出的NullPointerException,所以Mockito以某种方式创建了一个“真实”对象并调用了真实方法,而不是模拟了一个方法。为什么这样? 在上面的示例中,我在课堂上进行了更改,以确保不是

  • 问题内容: 我在go中编写了一个简单的UDP服务器。 当我这样做时,它会打印我发送给它的所有包裹。但是,当客户端停止运行时,它将停止传递到文件。 客户端是发送10k请求的简单程序。因此,在文件中,我大约有50%的已发送软件包。当我再次运行客户端时,文件会再次增长,直到客户端脚本完成。 服务器代码: 这是客户端代码: 问题答案: 如您所怀疑,由于UDP的性质,似乎 UDP数据包丢失 。由于UDP是无

  • 本文向大家介绍Golang import本地包和导入问题相关详解,包括了Golang import本地包和导入问题相关详解的使用技巧和注意事项,需要的朋友参考一下 1 本地包声明 包是Go程序的基本单位,所以每个Go程序源代码的开始都是一个包声明: 这就是包声明,pkgName 告诉编译器,当前文件属于哪个包。一个包可以对应多个*.go源文件,标记它们属于同一包的唯一依据就是这个package声明

  • 问题内容: 这个问题更多是出于好奇。 我正在创建以下数组: 然后,打印它: 但是,如果删除j,则会得到: 但是,如果我从for中删除j,则会得到: 是因为我使用0.6创建矩阵的方式吗?它如何代表内部真实价值? 问题答案: 这里发生了一些不同的事情。 首先,Python有两种将对象转换为字符串的机制,称为和。 应该提供“忠实”的输出,从而(理想情况下)可以轻松轻松地精确地重新创建该对象,同时旨在提供