草庐IT

go-mocket

全部标签

go - 为什么我会出现死锁?

我试图在下面重现一种情况,其中我试图同时运行三个函数。但是,我只能在第一个函数的某个点之后运行第二个和第三个函数,因为它取决于第一个函数的值。对于这种情况,我使用了一个channel。这是我的代码:packagecodeimport"fmt"funcFirst(cchanstring){fori:=0;ipackagemainimport("./code""fmt""sync"//"sync""time")funcmain(){start:=time.Now()varwgsync.WaitGroupwg.Add(3)varcchanstring=make(chanstring)gofu

go - 如何计算 golang 中移动窗口的最后 60 秒?

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭3年前。Improvethisquestion我想知道golang中60s后如何根据移动窗口统计请求数?

go - 编译go时包含目标文件

假设我有一个名为test.o的目标文件。它包含对名为say的函数的引用。还说我有一些go代码:funcmain(){say()}我可以在编译我的Golang源代码时将目标文件作为参数传入(gobuild--include=test.o),还是在Go源代码中引用它?所以问题是:如何从我的Go代码中访问存储在test.o中的函数? 最佳答案 Sothequestionis:howcanIaccessthefunctionstoredintest.ofromwithinmyGocode?你不能。嗯,你的问题不清楚。如果你有一些C代码编译成

go - 将 nil 附加到 slice 结果为 0 值

将nil值附加到接口(interface)slice会导致slice包含0值。[0]varvalues[]interface{}values=append(values,nil)但是这样做,values[0]=nil如我所料。它导致一个slice持有一个nil值[]我需要将nil值传递给我的数据库驱动程序。这是怎么回事? 最佳答案 我无法重现您的问题:append(values,nil)正确地附加了一个包装为接口(interface)的nil:packagemainimport"fmt"funcmain(){varvalues[]i

go - 覆盖匿名结构函数

如何覆盖匿名结构函数。为了阐明我的意思,请看下面的代码片段:packagebaseimport("fmt""net/http")typeExecuterinterface{Execute()}typeControllerstruct{}func(self*Controller)Execute(){fmt.Println("HelloController")}func(self*Controller)ServeHTTP(rwhttp.ResponseWriter,r*http.Request){self.Execute()}现在我将Controller结构嵌入到Test结构中,也称为匿名

go - 开关或运算符编译错误

我有以下编译器提示的代码。switchreq.Method{case"POST"||"PUT"||"DELETE":ifreq.Header.Get("Content-Type")!="application/json"{returnhandleErr(req)}}编译器错误信息..\..\controllers\routes\header.go:59:invalidoperation:"POST"||"PUT"(operator||notdefinedonstring)我是否以错误的方式使用了OR运算符? 最佳答案 只需使用逗号,

datetime - 在 Go 中,给定一个位置名称,我们如何确定该位置的当前时间?

关闭。这个问题是notreproducibleorwascausedbytypos.它目前不接受答案。这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这个问题的解决方式不太可能帮助future的读者。关闭7年前。Improvethisquestion我们不能使用Zone()返回的偏移量:packagemainimport"fmt"import"time"funcmain(){loc,_:=time.LoadLocation("America/Los_Angeles")t:=time.Date(2015,04,12,19,23,0,0,loc)t

go - 在go中将数据转换为base64编码

我是go编程语言的新手,我的代码中有这种情况。这是我的示例代码:a:=genreAPI{Genre{"Pop"},Genre{"Rock"}}fmt.Println("Valueofa:",a)当前输出是:a的值:[{Pop}{Rock}]如何实现这样的输出:a的值:[{UG9w}{Um9jaw==}]哪个是base64编码? 最佳答案 我不确定文档中到底有什么不清楚的。不仅有明确的name它解释了该方法正在做什么,它还有一个示例。packagemainimport("encoding/base64""fmt")funcmain()

go - 如何从其他文件访问我的日志实例

我最近开始学习Go,当我决定将我的代码放在多个文件(main.go)中时,出现了一个问题。我经常需要的常用内容(如日志、缓存、配置、指标等)在其他文件中都不可用,即使它们属于同一个“packagemain”。我想根据配置(viper包)中的数据配置一次我的日志实例(logrus包)。而这仅仅是个开始,我很快就会有一个DB实例(?)、Cache实例等。解决我的问题的最好方法是什么,围棋的最佳实践是什么?如何遵循DRY原则?如果我将我的初始日志设置放入“mylog”包中,然后将其导入到每个包的每个文件中,那么会有多少个mylog实例?每个文件/包/??有效率吗?Log和Config也是相互

go - 在函数中输入变量名

我是Go的新手,我想将这个片段变成一个函数。基本上,我想知道是否有可能将变量名传递给函数调用,所以如果我调用:改变颜色(变量名)它会运行,然后为输入到函数调用中的原始变量分配一个新值。希望这是有道理的,提前致谢ifvarName==yellow{varName=black}else{varName=yellow} 最佳答案 您可以通过阅读不同的EvaluationStrategies来大致了解这个概念。编程语言使用的。在Go中,您可以使用指针实现您正在寻找的行为。如果没有指针,您通常会传递变量的副本。使用指针,您将传递内存中值的位置