国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 梁山县| 维西| 富蕴县| 寿宁县| 齐齐哈尔市| 涪陵区| 岚皋县| 屯留县| 新建县| 靖江市| 益阳市| 虞城县| 西吉县| 秦安县| 商南县| 汤阴县| 宁阳县| 昭苏县| 将乐县| 武强县| 竹北市| 南江县| 治多县| 德州市| 中阳县| 宜春市| 恩施市| 宁德市| 马关县| 额敏县| 八宿县| 贡嘎县| 武汉市| 彭泽县| 建湖县| 越西县| 资阳市| 怀集县| 白玉县| 兴安县| 岳池县|