国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Golang > 正文

Golang實現(xiàn)for循環(huán)運行超時后自動退出的方法

2020-04-01 19:01:39
字體:
供稿:網(wǎng)友

前言

for循環(huán)是用來遍歷數(shù)組或數(shù)字的。用for循環(huán)遍歷字符串時,也有 byte 和 rune 兩種方式.第一種為byte,第二種rune.下面話不多說了,來一起看看詳細(xì)的介紹吧。

Golang實現(xiàn)for循環(huán)

package mainimport "fmt"func main() {  sum := 0  for i := 0; i < 10; i++ {    sum += i  }  fmt.Println(sum)}

跟C語言中一樣,可以讓前置、后置語句為空。

package mainimport "fmt"func main() {  sum := 1  for ; sum < 1000; {    sum += sum  }  fmt.Println(sum)}

基于此可以省略分號:

package mainimport "fmt"func main() {  sum := 1  for sum < 1000 {    sum += sum  }  fmt.Println(sum)}

如果省略了循環(huán)條件,它就是個死循環(huán)源。

package mainfunc main() {  for ; ; {  }}

而為了避免累贅,分號可以省略,因此一個死循環(huán)可以簡潔地表達。

package mainfunc main() {  for {  }}

for 循環(huán)超時自動退出

如何控制 for 循環(huán)一段時間超時自動退出呢?思路很簡單,就是在 for 循環(huán)中使用 select 監(jiān)聽 channel,代碼如下:

package main import ( "fmt" "time") func main() { timeout := time.After(time.Second * 10) finish := make(chan bool) count := 1 go func() { for { select { case <-timeout: fmt.Println("timeout") finish <- true return default: fmt.Printf("haha %d/n", count) count++ } time.Sleep(time.Second * 1) } }()  <-finish  fmt.Println("Finish")}

這里設(shè)置 for 循環(huán) 10s 超時。

運行內(nèi)容:

haha 1haha 2haha 3haha 4haha 5haha 6haha 7haha 8haha 9haha 10timeoutFinish

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網(wǎng)的支持。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 古蔺县| 河南省| 吉木乃县| 桐乡市| 改则县| 海晏县| 深圳市| 灵璧县| 奇台县| 奉新县| 陵川县| 金塔县| 安阳市| 临安市| 泾川县| 宜兰县| 东源县| 旬阳县| 红河县| 商南县| 东乡族自治县| 龙江县| 塘沽区| 遵化市| 荥阳市| 灌云县| 乐安县| 徐闻县| 安西县| 新野县| 昆明市| 海盐县| 罗山县| 天峨县| 乌兰浩特市| 定远县| 茌平县| 都昌县| 延川县| 阿克苏市| 图片|