草庐IT

go-admin

全部标签

go - 在 Go 模板范围循环中,是否在每次迭代时重置循环外声明的变量?

我正在尝试使用在Go模板范围循环外声明的变量来查看上一篇文章是否与当前文章发生在同一天。这是一个简化的示例。其中.Posts是一个帖子结构数组,每个结构都有一个.Content和一个.Date。{{$prevDate:=""}}{{range$post:=.Posts}}{{ifne$prevDate$post.Date}}Postsdated:{{$post.Date}}{{end}}{{$post.Content}}{{$prevDate:=$post.Date}}{{end}}问题是$prevDate似乎在每次循环迭代开始时重置为""。任何人都可以帮助我理解为什么每次迭代都会重置

go - 探查器不显示函数调用(/pgk/profile with pprof)

这个问题在这里已经有了答案:golangtoolpprofnotworkingproperly-samebrokenoutputregardlessofprofilingtarget(1个回答)关闭6年前。编辑:当我将可执行文件添加到pprof调用时工作我正在尝试使用来自https://github.com/pkg/profile的探查器来探查一个简单的程序:然后去工具pprof。packagemainimport"github.com/pkg/profile"funcmain(){deferprofile.Start().Stop()t1()t2()}funct1(){fori:=0

go - 中断当前的尾部并开始新的尾部

所以我在golang中创建了一些日志分析器,我需要的是新创建文件的实时tail-f。我正在使用tail包和fsnotify包,但我不太熟悉go中的channel和例程,所以我需要一些帮助。目前程序是这样的:packagemainimport("fmt""github.com/hpcloud/tail""strings""log""net/smtp""time""github.com/fsnotify/fsnotify")//thisfunctionneedstomonitorfornewfilesindirectoryfuncnewFileCheck()(newFilenamechan

go - 在结构映射中实现结构集

我有一个结构映射如下:typeSocketIDstringtypeSocketstruct{socket//...idstring}typeChannelstruct{sync.Mutexsocketsmap[SocketID]Socket}我希望能够为其添加子channel,其中每个Socket都属于一个子channel。我尝试将channel结构更改为此:typeSubchannelIDstringtypeChannelstruct{sync.Mutexsocketsmap[SocketID]Socketsubchannelsmap[SubchannelID]map[SocketI

go - 在 go 中从 Cassandra 创建 json

我在Cassandra中有一个表定义如下:CREATETABLEbook.book(titletextPRIMARYKEY,amountdecimal,availableint,createdontimestamp)我正在尝试从该表中选择*并以json格式返回值。我能够使用typeBookstruct{Titlestring`json:"title"`Amountinf.Dec`json:"amount"`CreatedOntime.Time`json:"createdon"`Availableint`json:"available"`}与funccassandraDisplay(qu

go - 何时使用 atomic.LoadPointer

使用atomic.StorePointer/LoadPointer有什么区别:data:="abc"atomic.StorePointer(&p,unsafe.Pointer(&data))fmt.Printf("valueis%s\n",*(*string)(atomic.LoadPointer(&p)))然后只是正常使用指针?data:="abc"p=unsafe.Pointer(&data)fmt.Printf("valueis%s\n",*(*string)(p))如果我决定像第二个例子那样只从指针读取数据,而不是使用LoadPointer,会出现什么问题?我猜可能会有某种竞赛

go - Golang 中的变量初始化和作用域

我正在学习golang,我遇到了下面的代码varkvstore=make(map[string][]byte)//thisfunctioninstantiatesthedatabasefuncinit_db(){kvstore=make(map[string][]byte)}//putinsertsanewkeyvaluepairorupdatesthevaluefora//givenkeyinthestorefuncput(keystring,value[]byte){kvstore[key]=value}//getfetchesthevalueassociatedwiththeke

go - 通过 go-socked.io 接收字节数组时出错

我正在尝试从浏览器发送一个Int8Array到go-socked.io,这是我客户的代码:functioninit(){conn=io('http://localhost:8080/');varc=newInt8Array([127]);conn.emit('m',c)}这是我的服务器代码funcmain(){server,err:=socketio.NewServer(nil)iferr!=nil{log.Fatal(err)}server.On("connection",on_connection)http.Handle("/socket.io/",server)http.Hand

go - golang中如何生成多个uuid和md5文件

您好,我已经在golang中生成了Md5和uuid,但现在我想使用命令行参数为多个文件生成它,所以我到底需要做什么。这就是我生成md5和uuid的方式:packagemainimport("crypto/rand""crypto/md5""fmt""io""os""log""text/template")typeDatastruct{UuidstringMd5string}funcmain(){uuid,err:=newUUID()iferr!=nil{fmt.Printf("error:%v\n",err)}fmt.Printf("UUID:%s\n",uuid)md5:=Getmd

go - 如何针对本地文件更改更新 go doc?

当我调整我的Go文档时,godoc显示的是旧文档。我如何让godoc根据本地文件更改更新其缓存? 最佳答案 奇怪,godoc提供了一个缩略版的文档:包含包文档,并列出了public成员,但是godoc命令不显示文档对于公共(public)成员,即使使用-u选项。相反,必须使用godoc工具。 关于go-如何针对本地文件更改更新godoc?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questio