草庐IT

walk_packages

全部标签

Go package wincred 在将密码从 []byte 转换为字符串时添加空格

我正在使用Windows凭据管理器通过wincredpackage为我在Go中构建的应用程序存储数据库凭据。它适用于检索由程序包本身创建的凭据的密码,但是对于直接通过Windows凭据管理器创建的凭据,程序包在从[]字节转换为字符串时在字符之间添加“空格”(字节“0”).//Retrieveacredentialobjectpackagemainimport("fmt""github.com/danieljoos/wincred")funcmain(){cred,err:=wincred.GetGenericCredential("myGoApplication")iferr==nil

go - 卡拉克斯 : package is not in any of the go paths

我试过使用kallax.当我尝试运行它时,我发现了这样的错误:panic:parseutil:packageisnotinanyofthegopathsgoroutine1[running]:gopkg.in/src-d/go-kallax.v1/generator.glob..func1(0x890120,0xc00015af60)/home/user/go/pkg/mod/gopkg.in/src-d/go-kallax.v1@v1.3.5/generator/template.go:491+0xa2GOPATH设置为/home/user/go,此外我使用vendoringGO11

go - 如何去 :generate stringer constants from multiple packages?

我有一个这样的结构:.foo/bar/constants.go.foo/constants.go.main.go在main.go中声明类型:packageagepacktypeEventTypeuint//go:generatestringer-typeEventTypeconst(FirstTypeEventTypeiotaSecondType....)在每个constants.go中我都有这样的东西:packagefooconst(OneMoreTypeagepack.EventType=100+iota)如何使用所有包的值生成stringer? 最佳答

去插件 - "plugin was built with a different version of package"

我有一个在启动时加载插件的应用程序(守护进程)。在一个子包(守护进程/接口(interface))中,我有一些接口(interface)供该程序的插件使用。这意味着主程序也被插件导入。我正在使用Go模块(用于主程序和插件)来修复版本,我可以在go.mod中看到它正在使用最新版本的主程序插件。我可以很好地构建它们,但是当我加载插件时它给我一个错误提示panic:plugin.Open("plugins/my-plugin"):pluginwasbuiltwithadifferentversionofpackagedaemon/interfaces我正在使用Go1.12.7构建这两个包。

macos - 6g : No such file or directory - Building Go packages with `gomake` on Snow Leopard

我有两个.go文件,numbers.go和numbers_test.go我想按照creatinganewpackagetutorial(向下滚动查看文件的详细信息。)所有文件都在同一目录中。当我在终端导航到该目录并键入gomake时,我得到了这个:6g-o_go_.6numbers.gomake:6g:Nosuchfileordirectorymake:***[_go_.6]Error1这个错误是说它找不到numbers.go。如果我手动执行这一行(不移动目录):6g-o_go_.6numbers.go它成功创建了_go_.6文件。那么为什么gomake找不到文件呢?这是我正在使用的文

networking - Go package syscall conn.Read() 是非阻塞的,导致 CPU 使用率高

奇怪的是,在我的例子中,Read()是非阻塞的,导致CPU使用率很高。我的代码:在函数main中:l,err:=net.Listen("tcp",":13798")iferr!=nil{log.Fatal(err)}for{//Waitforaconnection.conn,err:=l.Accept()iferr!=nil{log.Fatal(err)}//Handletheconnectioninanewgoroutine.//Theloopthenreturnstoaccepting,sothat//multipleconnectionsmaybeservedconcurrent

戈朗 : gocraft/health package 100% CPU

我使用gocraft/health来检查我的服务的健康状况并获得每个端点的指标。但我有一个问题:启动服务仅5小时后CPU就达到100%我不知道为什么。不使用“gocraft/health”它只需要0.7%的CPU以前有人用过这个包吗varstream=health.NewStream()funcmain(){//Logtostdout!(canalsouseWriterSinktowritetoalogfile,Syslog,etc)stream.AddSink(&health.WriterSink{os.Stdout})http.HandleFunc("/api/getVastPla

戈朗 : How can I use pflag with other packages that use flag?

如何在使用pflag的同时使用其他使用flag的包?其中一些包为flag包定义了标志(例如在它们的init函数中)-并且需要调用flag.Parse()。使用pflag包定义标志,需要调用pflag.Parse()。当参数混合时,对flag.Parse()和pflag.Parse()的调用之一将失败。如何将pflag与其他使用标志的软件包一起使用? 最佳答案 我找到了两种方法。一个带有pflags的AddGoFlags()。浏览器。f:=pflag.NewFlagSet("goFlags",pflag.ExitOnError)f.A

git - 去打包: How to avoid 'cannot find package' error when submitting PRs from fork?

在将git与goinstall集成的整体简单方法中,我遇到了听起来像是限制的问题。我在github上创建了一个git仓库我现在必须处理同一个存储库中的更改包,以正确引用我自己的分支。然后,当我准备好提交PR时,我需要恢复包导入,同时我将无法编译和安装更改。我可以保留2个repo协议(protocol)并挑选我需要更改的行,但到2016年这似乎太复杂了。我该如何解决这个问题? 最佳答案 你可能已经将github.com/user1/goprojectfork到github.com/user2/goproject中,这并不意味着你不能在

戈朗 : Values containing the types defined in this package should not be copied

链接https://golang.org/pkg/sync/声明“不应复制包含此包中定义的类型的值。”为什么会这样?如果我忽略建议会怎样? 最佳答案 它不再作为同步原语工作。充其量你会得到不可预测的行为。将锁(例如)想象成一个标志。如果它被锁定,则标志被设置。如果你复制那个锁(你复制标志的状态),副本会表现得好像它被锁定了,而实际上它没有。如果您解锁副本,原件不会更改,因此它会表现得好像已被锁定,而实际上它不应再被锁定。 关于戈朗:Valuescontainingthetypesdefi