草庐IT

reflection - 戈朗 : How can I use refect package with exsisting library

我想从函数名调用现有库中的函数。在golang中,只要从methodname调用method就OK了,因为reflectpackage有(vValue)MethodByName(namestring)。但是,对于调用方法,所有方法参数都应该是reflect.Value。如何调用参数不是reflect.Value的函数。packagemain//-------------------------------//Exampleofexistinglibrary//-------------------------------typeClientstruct{idstring}typeMet

ubuntu - golang 获取包报错

尝试使用此命令在我的项目中下载golang中的包时我去这个错误/home$去获取golang.org/x/oauth2/google#google.golang.org/cloud/compute/metadataprashant/.go/src/google.golang.org/cloud/compute/metadata/metadata.go:55:structliteral中未知的net.Dialer字段“KeepAlive”尝试在谷歌上搜索并更新了我的golang版本。但错误仍然存​​在。操作系统:Ubuntu14.04有什么建议吗? 最佳答案

go - SOO Go 分包命名

我正在将一个大型Web应用程序移植到Go。为了管理复杂性和提高可测试性,我们采用了面向服务的架构。我试图找出最清晰的方法来命名和构建包,这样就没有服务知道另一个服务的实现,并且我可以在应用程序级别区分它们。请允许我举个例子:服务packageapitypeFooServiceinterface{foo()}FooService实现packageimplementationimport("fmt"_"github.com/user/foo/api")typeFooImplementationstruct{}func(selfFooImplementation)foo(){fmt.Prin

戈朗 : Zip Package Modified Time Defaults to 30 November 1979, 00:00

如何将zip文件的修改时间更改为time.Now()?当我创建一个zip文件时,我得到的修改时间是1979年11月30日00:00。那么有没有简单的方法可以将修改时间设置为现在呢? 最佳答案 我发现这个函数可以满足我的需求:funcFileInfoHeader(fios.FileInfo)(*FileHeader,error)。这将获取一个输入数据文件并创建一个部分填充的FileHeader。 关于戈朗:ZipPackageModifiedTimeDefaultsto30November

go - 如何在Workiva/go-data structures/中使用b tree/plus

我一直需要二叉树的实现。我在这里找到了一个。https://github.com/Workiva/go-datastructures/tree/master/btree/plus但我不太确定如何使用它。这个repo中的其他数据结构非常简单。只需调用他的包并运行这些方法。但是这个btree有点令人困惑我只是想要一个简单的示例,说明如何创建、插入和检索由此包创建的树。创建btree/plus插入key检索范围 最佳答案 godoc因为它说“在撰写本文时,树还没有完全完成”,而且它似乎根本没有公开用于创建树的公共(public)接口(in

在 Windows 上使用 glide 安装命令

我在运行goinstall$(glidenv)命令时遇到问题。我从goworkspacedirectoy的src文件夹内的项目文件夹中运行此命令基本上我是这样的:%GOPATH%/src/my/project/goinstall$(glidenv)我得到的错误信息如下:can'tloadpackage:package$(glide:cannotfindpackage"$(glide"inanyof:C:\Go\src\$(glide(from$GOROOT)W:\GO_WORKSPACE\src\$(glide(from$GOPATH)can'tloadpackage:packagen

go - golang中ibe包中master接口(interface)的使用方法

我正在尝试使用ibe包的Master接口(interface)中的Extract()生成私钥,这里是包的链接,“https://godoc.org/v.io/x/lib/ibe#Master”。在包中,Extract的输入是id,由{0,1}*组成,所以我先将Macid转成二进制字符串,再用二进制字符串生成对应的私钥。我的代码是这样的。packagemainimport("fmt""v.io/x/lib/ibe")varMacid="00055DNEFF"varidstringvarPrivateKeystringfuncstringToBin(Macidstring)(idstrin

go - 导入特定包

我正在尝试解决依赖性问题:假设我想将main.go中的代码与我的数据库完全分离,我为此创建了2个包:dummy和postgres。/app/--main.go/dummy/--dummy.go/postgres/--postgres.go一切正常,我只需要在我的main.go中选择我想导入哪个包来获得一个行为或另一个......但是有没有办法在构建main.go?如果有更惯用的方法来实现这一点,我当然非常感兴趣! 最佳答案 您可以通过构建标签利用Go条件构建并定位您对main.go的编译。引用这个article并将您的想法付诸行动。

去安装排除文件

我创建了一个go脚本,用于编译、启动、检查状态并结束我创建的Web服务(也在go中)。但是,我遇到了障碍。使用编译功能,我运行以下命令:goinstall.这给出了以下错误:./script.go:55:mainredeclaredinthisblockpreviousdeclarationat./hello.go:8这是有道理的,因为我有两个不同的文件,都有mainfunc和main包。我还尝试将脚本移动到另一个文件夹,然后将运行的命令更改为:goinstall{path}其中{path}等于我要安装/编译的路径。然后我收到以下错误:exitstatus1:can'tloadpack

git - Dep xxx 已恢复,但无法加载,错误为 : Package xxx not found

我在my-app中有一个golang应用程序(克隆的gitrepo)。文件夹myapp与我的Dockerfile位于同一位置。我将我的项目复制到其中。这是我的dockerfile:FROMgolang:1.7RUNgogetgithub.com/tools/godepADDpriv/.netrc/root/.netrcWORKDIR/go/src/my-appADD./my-app.RUNgodeprestore-v现在godeprestore-v失败了。很多repo都恢复得很好,有些被跳过了:godep:Restoringdependency..godep:Restoringdepe