草庐IT

所有人

全部标签

go - 检查是否有人从 go channel 阅读

我们如何在gochannels上设置类似监听器的东西,当有人从channel中阅读某些内容时通知我们?想象一下,我们有一个用于channel条目的序列号,当有人从我们包中某处的channel读取值时,我们想减少它。 最佳答案 无缓冲channel同步传递数据,因此您已经知道何时读取数据。当缓冲区已满时,缓冲channel的工作方式类似,但在其他情况下它们不会阻塞,因此这种方法不会告诉您完全相同的事情。根据您的实际需求,还可以考虑使用sync.WaitGroup等工具.ch=make(chanData)⋮for{⋮//makedata

Golang 有人可以解释为什么哈希比较失败

我正在尝试开发一个用户登录系统,为此我正在测试golang的bcrypt功能。但我遇到了一些有趣的情况。我的bcrypt学习资料来源于此,代码运行良好https://medium.com/@jcox250/password-hash-salt-using-golang-b041dc94cb72但是当我自己写代码的时候,比较失败。packagemainimport("log""golang.org/x/crypto/bcrypt")funcmain(){hash1,_:=bcrypt.GenerateFromPassword([]byte("123456"),bcrypt.MinCost

go - 从 slice 中删除所有出现的相同元素

我有以下代码:funcTestRemoveElement(t*testing.T){nums:=[]int{3,2,2,3}result:=removeElement(nums,3)ifresult!=2{t.Errorf("Expected2,butitwas%dinstead.",result)}}funcremoveElement(nums[]int,valint)int{fori,v:=rangenums{ifv==val{nums=append(nums[:i],nums[i+1:]...)}}returnlen(nums)}根据answer,if语句中的语句是替换slice

regex - 使用 Go 从字符串中删除所有文章和其他字符串?

Go中是否有任何方法或正则表达式可以只删除字符串中使用的冠词?我试过下面的代码可以做到这一点,但它也会从我正在显示下面代码的字符串中删除其他单词:removalString:="Thisisastring"stringToRemove:=[]string{"a","an","the","is"}for_,wordToRemove:=rangestringToRemove{removalString=strings.Replace(removalString,wordToRemove,"",-1)}space:=regexp.MustCompile(`\s+`)trimedExtraSp

go - 获取 Go 中的所有 url

我想创建一个打印url名称的函数。当url有一个'?'时它不工作性格。谢谢你的帮助funclang(whttp.ResponseWriter,r*http.Request){message:=r.URL.Pathw.Write([]byte(message))} 最佳答案 使用Request.RequestURI获取请求URI。funclang(whttp.ResponseWriter,r*http.Request){message:=r.RequestURIw.Write([]byte(message))}

json - 为什么我从 mongodb 获取我的 json 中某些字段的所有零值?

我正在使用官方的mongodb-go-driver在Go网络服务器中从MongoDBatlas中获取我的数据。我正在使用json.Marshal转换为json。但某些字段的所有值都变为零。packagemainimport("context""fmt""log""github.com/gin-gonic/gin""go.mongodb.org/mongo-driver/bson""go.mongodb.org/mongo-driver/mongo""go.mongodb.org/mongo-driver/mongo/options""go.mongodb.org/mongo-drive

go - 返回对象中的所有内容

我是Go的新手,所以对于这个菜鸟问题我很抱歉。在JavaScript中,console.log(window)返回window内的所有对象。在PHP中,var_dump(newDateTime())返回DateTime()内的所有对象。Go中是否有一个函数可以返回给定对象的所有对象?例如,如果给出了fmt,则应返回Println。 最佳答案 尝试在终端中执行godocfmt以生成“fmt”包的描述和它导出的函数列表,或者引用fmtpackagedocumentation在https://golang.org.在go中,与大多数其他静

go - 确定所有 worker 都完成

正在关注Marcio'sthreadpoolimplementation是否可以确定所有工作何时完成?等待JobQueue清空是微不足道的://Waitforthejobqueuetoclearforlen(JobQueue)>0{//Justwait}然而在那之后可能还有goroutines在等待workers,或者workers还没有完成所有的任务:func(d*Dispatcher)dispatch(){for{select{casejob:=最好的方法是什么?在dispatcher中添加一个WaitGroup,以及查询WaitGroup状态的方法?对此的任何指示将不胜感激。

xml - 所有 XML 文本的 TrimSpaces

我正在从我无法控制的外部Web服务中检索XML字符串。一些数据包含空格Ihaveleadingwhitespace.如何修剪XML字符串中每个元素的空格? 最佳答案 您可以使用encoding/xml包中的原语动态修改XML流。在这种情况下实现xml.TokenReader是一个简单的解决方案:import("bytes""encoding/xml")typeTrimmerstruct{dec*xml.Decoder}func(trTrimmer)Token()(xml.Token,error){t,err:=tr.dec.Toke

regex - golang 正则表达式将所有内容匹配到 "."

我正在尝试做一些正则表达式来匹配第一个.的所有内容。字符串应该是这样的:hostkafka1.kafka.server:type=BrokerTopicMetrics,name=FailedProduceRequestsPerSec,topic=auto.tooling.files.received.v1.MeanR^Cost","metric_path":"dsdpecard01kfk06.kafka.server:type=BrokerTopicMetrics,名称=FailedProduceRequestsPerSec,topic=credit-card.servicing.ac