草庐IT

build-types

全部标签

go - 如何确保 go build 使用 vendor 目录中的所有依赖项

我在vendor/目录中使用了godep和vendored我所有的依赖项。Gobuild也工作正常。但是,我如何确定我的所有依赖项都已出售?有什么命令可以确保这一点吗? 最佳答案 我的CI服务(Travis是我使用的服务)让我知道。因为如果deps不可用,我的测试构建将失败。无论如何,您都应该使用CI服务,然后您就可以免费获得该好处。 关于go-如何确保gobuild使用vendor目录中的所有依赖项,我们在StackOverflow上找到一个类似的问题: h

Go AST/Types——如何判断错误?

有更好的方法吗?我需要知道v的类型是否是内置的“错误”类型。我觉得应该有一种更简洁的方法来做到这一点:import("go/ast""go/types")funcIsError(vast.Expr,infotypes.Info)bool{t:=info.Types[v]returnt.Type.String()=="error"&&t.Type.Underlying().String()=="interface{Error()string}"} 最佳答案 Typeassertion是检查变量类型的惯用方法。鉴于您正在处理一个AST表

Golang (v1.8) - 错误 : type *mux. Route has no field or method Method

我有一个配备了gorilla工具包的go/golang应用程序。我正在尝试使用gorilla/mux包进行路由。我的路线和错误信息如下。有什么指点吗?路线`r:=mux.NewRouter()r.HandleFunc("/",landing)r.HandleFunc("/contact",contact)r.HandleFunc("/faq",faq)r.HandleFunc("/register",accountsC.New).Method("GET")r.HandleFunc("/register",accountsC.Create).Method("POST")http.List

oop - 需要帮助理解 Go 中的 `map[String]type` 行为

请看这段代码:packageactivityimport("fmt""strconv""time")typeActivitystruct{yearContributionsmap[string]weekContributions}typedayContributionsstruct{Datetime.TimeContributionint}typeweekContributionsstruct{NotationstringAllDays[]dayContributions}func(currentWeekContribution*weekContributions)addContrib

go - go build/run 执行时出错

我创建了一个简单的go脚本:https://gist.github.com/kbl/86ed3b2112eb80522949f0ce574a04e3它从互联网上获取一些xml,然后启动Xgoroutines。X取决于文件内容。在我的例子中,它是1700个协程。我的第一次执行结束于:$gorunmathandel1.go2018/01/2714:19:37Gethttps://www.boardgamegeek.com/xmlapi/boardgame/162152?pricehistory=1&stats=1:dialtcp72.233.16.130:443:socket:tooman

去反射 panic : Call using interface{} as type

我在修改Go中的反射时遇到了一个有趣的场景。call1()有效(返回“hello!”),而call2()因reflect:Callusinginterface{}astype而出现panic字符串.在下面的代码中,call1()和call2()之间的唯一区别是如何创建和初始化inValue。我可以清楚地看到为什么call1()导致inValue成为一个string,而call2()导致inValue成为一个interface,所以我的问题不是为什么我的代码会产生这个,而是:为什么Go在第二种情况下不能执行函数调用?我认为接口(interface)仍然包含成功调用该方法的所有必要信息,因

go - 从 reflect.Type 中删除指针

我有一个reflect.Type,它包含一个指向结构的双指针。我希望能够删除一个间接级别以获得指向该结构的指针。这可能吗?例如,我想这样做:funcfoo(xinterface{}){typ:=reflect.TypeOf(x)fmt.Printf("%v",typ)//prints**FoorealType:=typ.PointsTo()fmt.Printf("%v",typ)//prints*Foo}但据我所知,这个功能并不存在。有一个Indirect函数在Value上运行,但我看不到任何类似的适用于Type的函数。 最佳答案

docker - 通过 'revel build <testapp>' 的 run.sh 二进制文件未在 docker 容器内运行

因为我最近开始使用revel框架来构建goweb应用程序。我创建了一个测试应用程序(orpat),将其编译为“revelbuildorpatprod”并更改了confPORT->8084以发布该应用程序。生成的文件是-orpat(可执行文件11MB)运行.sh运行.bat源/文件夹它从其他位置在我的本地系统上执行良好(当然它安装了golang和revel)。http://localhost:8084我将构建文件复制到未安装golang的虚拟机中,它也在那里执行'./run.sh':在终端中运行此cmd足以使应用联机。下面是dockerfile->FROMgolang:1.10.4-al

go - Go 中的 AntLR4 : Invalid type assertion: listener

我从Antlr4语法为Go语言生成了解析器。语法在这里:https://raw.githubusercontent.com/antlr/grammars-v4/master/solidity/Solidity.g4我生成解析器如下:java-jar$PWD/antlr-4.7.1-complete.jar-Dlanguage=Go-oparsersyntax/Solidity.g4生成的solidity_parser.go文件在任何地方都有以下错误listener.(SolidityListener)出现:无效类型断言:listener.(SolidityListener)(非接口(i

git - 在 dockerfile 中的 go build 命令中注入(inject)或插入多个 ENV 变量

我正在使用dockerfile来构建go代码,并且我试图在-ldflags选项中传递3个选项。其中两个标志来自ENV变量,我必须通过字符串插值或连接将它们注入(inject)-ldflags内容,但我不知道如何。目标是在main.go的两个变量中注入(inject)gitrevisionhash和当前时间戳可以通过creatingafilefromdockerfile来完成使用“echo”命令,但我想确保使用简单的变量插值/连接是不可能的ENVGIT_REVISION$(gitrev-parse--shortHEAD)ENVCOMPILATION_TIMESTAMP$(date+%Y%