草庐IT

go-mocket

全部标签

go - 为什么 map[]interface{} 不采用 map[]SpecificInterface

go规范指出:Avariableofinterfacetypecanstoreavalueofanytypewithamethodsetthatisanysupersetoftheinterface.我可以typeSourceinterface{}typeSourceImplstruct{}varsSourceg:=new(interface{})s=new(SourceImpl)*g=s但是,我不能与map相同:generic:=make(map[string]*interface{})specific:=make(map[string]*Source)generic=specifi

go - 所有goroutine都处于 sleep 状态-死锁(无限循环+选择)

我有一个应用程序,每隔几秒钟就创建一个从api获取当前价格的例程。然后它将响应发送到监视例程以进行分析。如果监视器发现价格有明显变化,它会发送一个通知。如果每次执行程序之间的延迟较大,则可以正常工作。如果它很小,它不会:“致命错误:所有goroutine都处于休眠-死锁状态!”被触发,程序崩溃。我猜(?)死锁是由以下原因造成的:(1)监视器充斥着新的价格信息(并且未能及时分析这些信息);或(2)主功能被监视器的消息所淹没。在主函数将新价格附加到一个切片上的同时,监视器正在遍历它,这一事实可能也有一些缺点。如何解决这个问题?在阅读其他文章时,我认为“select”语句是一种神奇的治疗方法

go - "..."未定义("..."类型没有字段或方法 "...")

我正在为我的goapi设置crud操作。创建所有函数后,我收到错误“app.createApplicationundefined(类型Application没有字段或方法createApplication)”,尽管我已经创建了它。确保变量与现有包的名称不同,正如其他有关堆栈溢出的问题所述。API.gopackagecontrollersimport("encoding/json""fmt""log""net/http""os""strconv""time""github.com/gorilla/mux""github.com/jinzhu/gorm"_"github.com/jinzh

go - 如何知道在 Golang 中是否填充了一个空的 struct var?

这个问题在这里已经有了答案:Howcheckifapropertywassetinastruct(4个答案)HowtorecognizevoidvalueandunspecifiedfieldwhenunmarshalinginGo?(1个回答)Howtocheckifaspecificpropertyofastructisnull?(1个回答)关闭4年前。在Python中我可以做这样的事情:aModel=Nonemodels=somefunction()formodelinmodels:ifmodel.coolisFalseandmodel.somenumber>-5:aModel=

go - 如何在 Golang 中为嵌套数组结构初始化变量?

我在Golang中解析一个JSON文件,通过创建一个嵌套结构,并且能够成功完成。但是,现在我想创建一个具有相同结构的变量,但出现以下错误cannotuse[]Specsliteral(type[]Specs)astype[]Specsinfieldvalue。有人可以在这里指出我的错误吗?我做错了什么?这是嵌套结构:typeConfigstruct{OrdererOrgs[]OrdererOrgs`json:"OrdererOrgs"`PeerOrgs[]PeerOrgs`json:"PeerOrgs"`}typeOrdererOrgsstruct{Namestring`json:"n

go - 设计 Go 程序以避免循环依赖

我是Golang的新手,我做了一个学习它的例子,但我面临着不允许导入我的例子的循环,所以有人知道如何避免这种情况吗?这是我的代码。银行,去packageBankimport("../../class/human""fmt")funcTransfer(payer,receiver*human.Human,paymentfloat64){ifpayer.Bank>payment{payer.Bank-=paymentreceiver.Bank+=payment}else{fmt.Println("Bankbalancenotenough")}}人类.gopackagehuman//impo

go - 如何在 Ubuntu 的 go 1.11 中设置 GOPATH 环境变量?我必须编辑什么文件?

ubuntu@ubuntu:~/.work/src/github.hpe.com/hybridpoc/marketplace-terraform-tf-broker$gorunmain.gomain.go:10:2:cannotfindpackage"github.hpe.com/hybridpoc/marketplace-terraform-tf-broker/broker/github"inanyof:/home/ubuntu/go/src/github.hpe.com/hybridpoc/marketplace-terraform-tf-broker/broker/github(

go - 我可以为另一个域指定和设置 http-only cookie 吗?

假设我有一个有两个域的服务app.myapp.comapi.myapp.com我的应用执行整个OAuth/OpenID流程。app.myapp.com/oauthapp.myapp.com/oauth/callback在/callback中,我将accessToken设置为当前域(app.myapp.com)上的仅限http的cookie。我在api.myapp.com上有各种各样的微服务,所有这些都需要accessToken才能工作。在OAuth流程的/callback阶段,我可以在我的http-onlycookie中指定其他域吗?我正在使用Go+Ginc.SetCookie("ac

go - 为什么 Goroutines 的执行时间相差很大?

我只是在测量一组goroutine的执行时间。这意味着:我开始测量,然后启动20个goroutine并在它们完成后立即停止测量。我重复该过程大约4次,然后比较4次执行时间。有时,这些执行时间会有很大差异:20个goroutine的第一次运行:1.2毫秒20个协程的第2次运行:1.9毫秒20个协程的第3次运行:1.4毫秒20个goroutine的第4次运行:17.0毫秒!为什么有时差异如此之大?有什么办法可以避免吗? 最佳答案 Whydoesitsometimesdiffersosignificantly?执行时间在某些时候总是不可预

java - 为什么我的 Go 数组排序代码比 Java 慢很多?

将我的一个计算量大的后端程序从Java迁移到Go后,我发现性能没有提高而是下降了。我测试了一些,似乎数组排序代码是罪魁祸首(我在我的程序中大量使用它)。我写了下面两个简化的程序来做一个比较,Go内置的排序功能似乎比Java的Arrays.sort方法慢很多?packagemainimport("fmt""math/rand""sort""time")funcmain(){fmt.Println("Starting")constx=1000000consty=x*10vars[y]float64s1:=rand.NewSource(time.Now().UnixNano())r1:=ra