草庐IT

go-import

全部标签

go - golang 中缓冲 channel 上的并发读取冲突?

我有一个被多个(在本例中为4个)go例程读取的缓冲channel。queue:=make(chanstring,10000)//alargebufferedchannel每个go例程检查channel中可用元素的数量并处理它们。fori:=0;i多个go例程会在读取时发生冲突吗?换句话说,不同的go例程是否可以在channel中获取相同的元素,或者当一个go例程正在读取缓冲区时,其他go例程已经读取并处理了一些元素?如何在一个goroutine正在读取时阻止其他goroutine读取? 最佳答案 简单的回答:没有。放置在Gochan

go - 如何将今天的日期格式化为 dd-mm-yyyy?

这个问题在这里已经有了答案:Howtoconvertdatetodifferentformats?(2个答案)关闭5年前。我正在尝试在golang中格式化今天的日期,但似乎正在为一些我认为非常简单的事情而苦苦挣扎。我正在尝试以dd-mm-yyy的格式获取今天的日期有什么想法吗?谢谢

go - 如何反转 golang map 中项目的顺序?

这个问题在这里已经有了答案:Collectvaluesinorder,eachcontainingamap(7个答案)关闭4年前。我是golang的新手,我想颠倒映射中对的出现顺序,以便最后一对排在第一位:mapA:=map[string]int{"cat":5,"dog":2,"fish":3,}fmt.Println(mapA)map[cat:5dog:2fish:3]生成的map应该是这样的:map[fish:3dog:2cat:5]它可以是一个新的mapB,具有相同的项目但顺序颠倒。我怎样才能做到这一点?

multithreading - 如何在go中转换以下Thread语句

我正在尝试在go中转换以下线程的java语句;intnum=5;Thread[]threads=newThread[5];for(inti=0;i我想知道,如何将其转换为go?谢谢 最佳答案 Golang使用了一个叫做"goroutines"的概念(灵感来自"coroutines")而不是许多其他语言使用的“线程”。您的具体示例看起来像是sync.WaitGroup的常见用法输入:wg:=sync.WaitGroup{}fori:=0;i请注意,示例中的SomeFunction(...)可以是任何类型的工作,并将与所有其他调用同时执

go - 如何从 Golang 中的相邻文件导入代码

是的,学习新编程语言时的典型问题。我有这个:$GOPATH/src/huru/foo/side.gohello.go在hello.go中我有:packagemainimport("encoding/json""log""net/http""github.com/gorilla/mux")funcmain(){Foo()}在foo/side.go中,我有:packagemainfuncFoo(){}我跑:goinstallhuru我得到:#hurusrc/huru/hello.go:22:2:undefined:Foo编译器不喜欢hello.go中的Foo()调用,我该如何正确导入它?我

go - 无法传播数组以作为多个参数传递

我有这个:methods:=[...]string{"POST","PUT"}router.HandleFunc(h.makeRegisterNewUser("/api/v1/register",v)).Methods("POST","PUT")除了methods未被使用外,它是有效的。如果我尝试这样做:methods:=[...]string{"POST","PUT"}router.HandleFunc(h.makeRegisterNewUser("/api/v1/register",v)).Methods(methods...)我收到这个错误:cannotusemethods(ty

go - 函数不会返回多个返回 - 单值上下文中的多值

Go拒绝返回多个返回值。如果我遗漏了第二次返回,它会起作用,但我需要第二次返回。我该如何解决?这是我的电话:typeStreamingstruct{}funcmain(){mySlice,dateList=getHgetallStreamingData()}这是我的功能:funcgetHgetallStreamingData(pairstring,credis.Conn)([]Streaming,[]time.Time){varmySlice[]StreamingvardateList[]time.TimereturnmySlice,dateList}这是我的错误:multiple-v

go - 如何获取 Go 中的结构类型?

关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭3年前。Improvethisquestion我正在做一个演示项目来理解GO语言。我定义了一个接口(interface)和两个结构类型。另外,我定义了一个接口(interface)数组。根据用户输入,我将数组中的每个元素定义为一种结构。在数据操作期间,我想检查数组上定义的结构的类型。我曾尝试使用反射,但不幸的是它没有用。互联网上的其他方法也不起作用。我收到诸如panic或jsoncannotUnmarshal之类的消息。typeMain_in

go - 如何使用 channel ?

我有一个函数,它接受一个int数组并将它们转储到一个channel中。funcDump(a[]int,chchanint){fori:=rangea{ch这个主要没有建立:funcmain(){ch:=make(chanint)arr:=[]int{1,2,3,4,5}Dump(arr,ch)fori:=rangech{fmt.Printf("Got%v\n",i)}}抛出这个错误:fatalerror:allgoroutinesareasleep-deadlock!goroutine1[chansend]:main.Dump(0xc000078f48,0x5,0x5,0xc00006

go - 本地图的键是结构时 Marshal/unMarshal 的问题

我定义了一个名为Student的结构和一个名为score的映射。数据结构如下图:typeStudentstruct{CountryIDintRegionIDintNamestring}stu:=Student{111,222,"Tom"}score:=make(map[Student]int64)score[stu]=100我正在使用json.Marshal将分数编码到json中,但我无法使用json.Unmarshal来解码此json。下面是我的代码。我正在使用函数GetMarshableObject将structStudent转换为可编码的字符串。谁能告诉我如何处理这个json以将