草庐IT

while循环

全部标签

go - 如何做一个 For-Else 循环(其他语言的 While-Else)?

前段时间我读到/看到您可以在Go中执行For-Else循环,但现在我再也找不到正确的语法了。我发现它是一个非常有用的结构,并希望将它放在我的工具箱中。有关我的意思的python示例,请参阅http://www.yourownlinux.com/2016/12/python-while-else-loop-break-continue-statement.html.whilemyVar 最佳答案 Python3.7.4documentation8.2.ThewhilestatementThewhilestatementisusedfo

go - 达到 time.Now() 时进行循环

在Golang中是否可以通过给定的日期变量增加for循环中的日期,直到达到当前日期/时间。Now()//Startdatet,_:=time.Parse(time.RFC3339,"2018-07-19T12:25:10.8584224+02:00")//Currentdatect:=time.Now()ford:=t;d.Day()==ct.Day();d=d.AddDate(0,0,1){//Printalldaysbetweenstartdateandcurrentdatefmt.Println(d)}我希望变量d打印出所有日期(包括时间等),直到它到达当前日期

go - 循环包含 map[int]*somepointer 的 interface{}

我必须处理大量带有int键的映射,这些键包含指向不同数据类型的指针。我需要一个函数(而不是每种map类型10个函数)来遍历这些map并获取最大和最小键值。 最佳答案 使用reflect包对具有整数键和任意值类型的映射进行操作:funcgetMaxKey(inoutinterface{})int{keys:=reflect.ValueOf(inout).MapKeys()iflen(keys)==0{return0}max:=keys[0].Int()for_,key:=rangekeys[1:]{n:=key.Int()ifn>ma

go - 为什么我在 for 循环的函数末尾缺少返回值

代码如下:funcContain(livesJSON[]LiveJSON,singledb.Live)bool{for_,json:=rangelivesJSON{ifjson.Start==single.Time&&json.Team==single.HomeTeamId{returnfalse}else{returntrue}}}我在if和else中都有return。 最佳答案 不保证循环体会被执行。如果您为livesJSON传递nil或空slice,就会出现这种情况。这样你就不会返回任何东西。对于这种情况,您必须在循环之后插入

go - 所有goroutine都处于 sleep 状态-死锁(无限循环+选择)

我有一个应用程序,每隔几秒钟就创建一个从api获取当前价格的例程。然后它将响应发送到监视例程以进行分析。如果监视器发现价格有明显变化,它会发送一个通知。如果每次执行程序之间的延迟较大,则可以正常工作。如果它很小,它不会:“致命错误:所有goroutine都处于休眠-死锁状态!”被触发,程序崩溃。我猜(?)死锁是由以下原因造成的:(1)监视器充斥着新的价格信息(并且未能及时分析这些信息);或(2)主功能被监视器的消息所淹没。在主函数将新价格附加到一个切片上的同时,监视器正在遍历它,这一事实可能也有一些缺点。如何解决这个问题?在阅读其他文章时,我认为“select”语句是一种神奇的治疗方法

go - 设计 Go 程序以避免循环依赖

我是Golang的新手,我做了一个学习它的例子,但我面临着不允许导入我的例子的循环,所以有人知道如何避免这种情况吗?这是我的代码。银行,去packageBankimport("../../class/human""fmt")funcTransfer(payer,receiver*human.Human,paymentfloat64){ifpayer.Bank>payment{payer.Bank-=paymentreceiver.Bank+=payment}else{fmt.Println("Bankbalancenotenough")}}人类.gopackagehuman//impo

for-loop - 由于我的 if 语句,我的 for 循环停止处理

我想使用for循环获取所有位置fori:=0;i如果我只处理上面的函数,输出就是我想要的,直到我开始插入这个if语句ifword[i]-word[j]==0||word[i]-word[j]==1||word[i]-word[j]==2||word[i]-word[j]==3||word[i]-word[j]==255||word[i]-word[j]==254||word[i]-word[j]==253{returnword}else{return""}我的for循环只处理了单词中的一个字母后就停止了,它是i的0和j的1 最佳答案

go - 如何循环直到 *ipconn.Read() 读取了所有发送给它的数据

我在go中使用*ipconn.Write方法发送一些数据,但似乎*ipconn.Read()一次只能读取20个字节这里是服务器发送数据ln,err:=net.Listen("tcp","localhost:8888")conn,err:=ln.Accept()tmp:=make([]byte,10000)tmp=[]byte("abcdefghijklmnopqrstuvwxyz")conn.Write(tmp)这里是客户端接收数据conn,err:=net.Dial("tcp","localhost:8888")data:=make([]byte,100000)conn.Read(d

map 某部分的Golang for循环

尝试为map的每个部分创建一个for循环。map[asn:AS10time:1.428790768e+09ipv4s:[68.114.75.0/24216.215.56.0/22216.215.60.0/22]ipv6s:[2607:f3f8::/32]]上面是映射,我想尝试为ipv4s中的每个值创建一个for循环。我已经尝试过了,但我显然没有正确地做到这一点,因为它仅仅基于我的php知识。:forjson_map["ipv4s"]{//whatever}PHP版本,如果有人需要示例而不是我试图解释:foreach($obj->ipv4sas$value){echo$value;//r

go - fmt.Printf 不执行内部循环

我正在用Go语言编写一个小程序来通过主机名检查服务器的状态是否已启动(在服务器列表之外)。我有一个函数,一旦它们从http.GET全部检索并存储到类型服务器的slice中,就会迭代服务器类型。我可以登录(在下面注释掉)并看到这两个评估都正确://fmt.Printf("Server:%s-Status:%s\n",server.Name,status)//fmt.Printf("%t\n",name==strings.ToLower(server.Name))两者都有预期的结果,但是当我运行程序时,if语句中的fmt.Printf()调用没有打印到控制台。funcgetServerSt