草庐IT

go - 如何跨go包使用常量

我正在编写我的第一个go代码,我试图说服自己我所做的没有错。无论如何,这里的项目是树结构。.├──helpers│  └──common.go├──logger│  └──util.go├──logger_example└──runner.go这里要查看的主要文件是logger/util.go,如下所示。packageloggerimport("log""os")typeLoggerstruct{*log.Logger}func(l*Logger)Info(v...interface{}){l.SetPrefix("Info:")l.Println(v...)}func(l*Logge

去测试 foo - 找不到包 foo

我有这样的目录结构:https://github.com/netjet-chrome-extension/netjet-mono/tree/master/examples/projects/golang我尝试运行test.sh,它包括:#!/usr/bin/envbashcd"$(dirname"$BASH_SOURCE")"exportGOPATH="$PWD"gotestsourcegraph_go_selenium但是我得到这个错误:can'tloadpackage:packagesourcegraph_go_selenium:cannotfindpackage"sourcegr

Go Modules - 本地包不可访问?

所以,我是Go的新手。我创建了一个go.mod文件modulegithub.com/austin/test-project我在最新的git提交中添加了一个标签v0.0.1。根据我试图理解的一些示例,我将这些导入添加到我的go文件中,其中common是一个包,dynamo是另一个包,而导入来自名为main的第三个包。import("github.com/austin/test-project/common""github.com/austin/test-project/db/dynamo/playerstateddb""github.com/austin/test-project/db/

go - 我如何模拟另一个包中的函数?

套餐AfuncValidate(){db.CheckPresent()//howtomockthisfunctionwhichisinanotherpackagereturnnil}我正在Golang中编写测试用例来测试从另一个包调用CheckPresent()函数的函数。如何模拟CheckPresent()函数? 最佳答案 typeCheckerinterface{CheckPresent()}//mocktypecheckerMockstruct{}func(mcheckerMock)CheckPresent(){}//prod

go - golang安装覆盖包时出现的问题

我有一些代码。但当我尝试运行覆盖测试并得到响应:'goget-ugithub.com/gregoryv/uncover/...gotest-coverprofile/tmp/c.outuncover/tmp/c.out'我尝试安装覆盖包:gogetcode.google.com/p/go.tools/cmd/cover但是报错packagecode.google.com/p/go.tools/cmd/cover:unrecognizedimportpath"code.google.com/p/go.tools/cmd/cover"(parsehttps://code.google.co

MongoDB Atlas Golang mgo包 "No reachable servers"错误

尝试连接到我的MongoDBAtlas数据库时,我不断收到以下错误。noreachableserversexitstatus1我正在运行与mgo兼容的MongoDB3.4版。我已将MongoDBAtlas上的所有IP地址列入白名单,包括我自己的。我在MongoDBAtlas上创建了一个名为'root'的用户,具有管理员权限。我在Ubuntu18.04上运行,我已将我的DNS名称服务器设置为8.8.8.8。我正在使用来自github.com/globalsign/mgo的mgo社区支持版本。我的代码如下:packagemainimport("fmt""log""github.com/gl

sql - 使用GoLang包“database/sql”时,是否可以使用通用类型变量检索查询结果

我上一个问题的推论:IsitpossibletoretrieveacolumnvaluebynameusingGoLangdatabase.sql:sql.Rows.scan()需要一个正确键入的变量,该变量正确放置在scan()调用中。这可能很乏味,并且还要求开发人员具有可用的db模式-并不总是可行的。我试图通过所有参数传递一个空的interface{}指针来使其工作。但这到目前为止还不能很好地解决,并且在访问值时还需要类型声明,这将很昂贵。有没有办法做到这一点? 最佳答案 在golang坚果邮件列表中,对此进行了更长的讨论。参见

Go:每个项目有多少包

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭3年前。Improvethisquestion今天在做我的Go项目时,我意识到我遇到了一个小问题。我有一个package,它有一个struct,它包含一个指向来自另一个package的结构的指针。但是,该package还使用了另一个包中的结构。在C和C++中,这不会造成问题,因为我会使用header保护。然而,在Go中,由于无限的import递归,这样的程序将无法编译。这让我想知道,我的项目中是否有太多包?我应该喜欢更大的包裹吗?我一

logging - 使用 Golang 包日志将行附加到文件,而不是获取新行。

当我使用log写入文本文件时,我正在使用golang包“log”,它不会在末尾附加新的文本行。它把所有东西都放在一起。Thisishowitlooks.HowIwouldlikeittolook.当前代码。f,err:=os.OpenFile("D:\\temp2\\testlogfile.txt",os.O_RDWR|os.O_CREATE|os.O_APPEND,0666)iferr!=nil{Error.Fatalf("erroropeningfile:%v",err)}deferf.Close()multi:=io.MultiWriter(os.Stdout,f)log.Set

go - 未导出的标识符包在 Golang 中是否公开?

正如题主所说,未导出的标识符在Golang中packagepublic吗?我读了spec但找不到任何东西。编译器似乎将未导出的函数名称视为文件私有(private)(而不是包公共(public))。 最佳答案 所有顶级常量、类型变量和函数都具有包范围。这包括这些类型的未导出标识符。确切的languagefromthespecificationis:Thescopeofanidentifierdenotingaconstant,type,variable,orfunction(butnotmethod)declaredattoplev