草庐IT

go-mocket

全部标签

go - Do map of pointers 与常用的maps使用方式不同

我想用map创建缓存。由于map不允许引用其值,因此无法更改被调用函数中的值。经过一些搜索,我发现,创建指针(结构)映射是可能的。它几乎解决了问题并且可以像引用变量一样工作但正如我发现一些使用这种方法的map。我担心使用它是安全的。有没有人有使用指针map的经验?这是正确的使用方式吗?packagemainimport"fmt"typeCachestruct{namestringcounterint}funcincr(cCache){c.counter+=1}funcincrp(c*Cache){c.counter+=2}funcmain(){m:=make(map[string]Ca

go - 非标准变量名

假设我想用结构表示HTTPheader,例如:Headersstruct{'x-requested-by''foo'}它绝对不喜欢带有连字符等的变量名。有什么办法解决这个问题吗? 最佳答案 将实际的header名称指定为字段标签,并在将结构编码或解码到线路时使用这些字段标签。查看encoding/json包以获取有关如何执行此操作的示例。如果更高级别的问题是使用任意字符串键存储键值对,则使用映射。 关于go-非标准变量名,我们在StackOverflow上找到一个类似的问题:

go - panic : runtime error: invalid memory address or nil pointer dereference [signal 0xc0000005 code=0x0 addr=0x8 pc=0x48be5c] goroutine 1 [running]:

我正在尝试使用链表实现多项式的加法。该程序成功地添加了幂0系数,但在第一次遍历后它出现了困惑。这是我到目前为止编写的代码。在初始化temp1!=nil之后,循环遍历else但当权力不同时不进入if循环并进入panic状态packagemainimport("fmt")typeNodestruct{coefficientintpowerintnext*Node}typeliststruct{head*Nodecountint}funcmain(){list1:=&list{}list1.addVariable(5,2)list1.addVariable(4,1)list1.addVari

go - 为什么 unmarshal 使 golang 中的对象类型发生变化

我想编写一个mockData方法,它可以接受多种类型的参数并根据其json数据返回相应的对象。代码如下:funcMockData(jsonPathstring,vinterface{})(interface{},error){varretinterface{}data,_:=ioutil.ReadFile(jsonPath)switchv.(type){caseReq:ret=Req{}fmt.Printf("\n===beforeUnmarshal==%T===\n",ret)err=json.Unmarshal(data,&ret)iferr!=nil{...}fmt.Printf

go - 从 time.Now() 开始接收字符串的简单方法

我正在尝试从time.Now()实例中获取日期作为字符串。now:=time.Now()//.String()wouldgivemetheentiredateasastringwhichIdon'tneedday:=now.Day())//iswhatIwantbutasaString.所以string(day)告诉我“无法将day转换为string”。现在对我来说.Day().String()会很好但是没有这样的方法...我现在可以尝试使用time.Now().String()并进行操作,直到一天结束。但应该有更简单的方法来做到这一点...... 最佳答案

go - 我可以在配置文件中指定 GO 构建文件名吗?

我正在尝试使用TravisCI构建一个多分区可执行文件,它将把构建的可执行文件放在github上。我希望名称为somename.os.arch。当我通过命令行在本地构建时,我使用-o参数和环境变量$GOOS&$GOARCH例如:go构建-osomename.$GOOS.$GOARCH但是,我不能使用他们的build_args为TravisCI指定这个,因为其他步骤失败(不理解-o标志)是否有我可以创建的Go构建配置文件来设置构建输出名称? 最佳答案 覆盖script.如果你指的是gobuild_args而不是build_args,它

go - 如何使用 golang 在本地主机系统中创建临时目录

这里我尝试使用下面提到的代码在我的本地系统中创建一个临时目录代码path:="/home/iron/go/"fmt.Println(os.Stat(path))//thisstatementprintsthedatashowingnumbersif_,err:=os.Stat(path);os.IsNotExist(err){os.MkdirAll(path,0755)}我也搜索过它,但我想从上面的代码中执行此操作或向代码中添加一些行。制作临时目录的链接:-link1,link2 最佳答案 可以只获取ostemp目录,在该目录下手动

go - 如何为对象创建结构并在 golang 中获取值?

这个问题在这里已经有了答案:JSONanddealingwithunexportedfields(2个答案)关闭4年前。我正在尝试编写一个函数,它将采用编码字符串,向jsonrpc服务发送请求,然后我需要选择一个无聊的数据(ask:assets:interface)并创建一个新变量如何为对象创建结构:{"ask":{"amount":0,"assets":[{"assetref":"74-266-27408","name":"USD","qty":5000}]},"cancomplete":true,"candisable":true,"complete":false,"offer":

opencv - go 的计算机视觉在我尝试下载它时出现错误

当我使用命令时:$goget-u-dgocv.io/x/gocv我得到错误:包gocv.io/x/gocv:无法下载,/home/ariel/go是GOROOT,不是GOPATH。有关详细信息,请参阅:'gohelpgopath'我使用ubuntu18.04 最佳答案 看起来您已经将go二进制文件安装到默认GOPATH所在的位置。要么将GOPATH设置为不同的东西,要么移动你的安装。 关于opencv-go的计算机视觉在我尝试下载它时出现错误,我们在StackOverflow上找到一个类

go - 在 Heroku 上获取零星的 "http: proxy error: read tcp: i/o timeout"

关闭。这个问题需要debuggingdetails.它目前不接受答案。编辑问题以包含desiredbehavior,aspecificproblemorerror,andtheshortestcodenecessarytoreproducetheproblem.这将有助于其他人回答问题。关闭4年前。Improvethisquestion我在Heroku上偶尔会遇到这个错误:代理服务:Dec2714:53:05betalo-turnpike-productionapp/web.2:{[...]}Dec2714:53:08my-proxyapp/web.2:{"level":"error"