亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Golang實(shí)現(xiàn)for循環(huán)運(yùn)行超時(shí)后自動(dòng)退出的方法

 更新時(shí)間:2017年11月19日 10:09:21   作者:小談  
for循環(huán)對(duì)大家來(lái)說(shuō)應(yīng)該都不陌生,對(duì)于golang來(lái)說(shuō)更是必不可少,所以下面這篇文章就來(lái)給大家介紹了關(guān)于Golang如何實(shí)現(xiàn)for循環(huán)運(yùn)行一段時(shí)間超時(shí)后自動(dòng)退出的相關(guān)資料,需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。

前言

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

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

package main

import "fmt"

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

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

package main

import "fmt"

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

基于此可以省略分號(hào):

package main

import "fmt"

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

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

package main

func main() {
  for ; ; {
  }
}

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

package main

func main() {
  for {
  }
}

for 循環(huán)超時(shí)自動(dòng)退出

如何控制 for 循環(huán)一段時(shí)間超時(shí)自動(dòng)退出呢?思路很簡(jiǎn)單,就是在 for 循環(huán)中使用 select 監(jiān)聽(tīng) 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 超時(shí)。

運(yùn)行內(nèi)容:

haha 1
haha 2
haha 3
haha 4
haha 5
haha 6
haha 7
haha 8
haha 9
haha 10
timeout
Finish

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • Golang將Map的鍵值對(duì)調(diào)的實(shí)現(xiàn)示例

    Golang將Map的鍵值對(duì)調(diào)的實(shí)現(xiàn)示例

    本文主要介紹了Golang將Map的鍵值對(duì)調(diào)的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 關(guān)于go語(yǔ)言編碼需要放到src 文件夾下的問(wèn)題

    關(guān)于go語(yǔ)言編碼需要放到src 文件夾下的問(wèn)題

    這篇文章主要介紹了go語(yǔ)言編碼需要放到src 文件夾下的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • Go語(yǔ)言連接Oracle數(shù)據(jù)庫(kù)的方法

    Go語(yǔ)言連接Oracle數(shù)據(jù)庫(kù)的方法

    這篇文章主要介紹了Go語(yǔ)言連接Oracle數(shù)據(jù)庫(kù)的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • Go語(yǔ)言中的字符串處理方法示例詳解

    Go語(yǔ)言中的字符串處理方法示例詳解

    Go語(yǔ)言的字符串是使用UTF-8編碼的。UTF-8是Unicode的實(shí)現(xiàn)方式之一。這篇文章主要介紹了Go語(yǔ)言中的字符串處理方法,需要的朋友可以參考下
    2018-10-10
  • Go Generate 代替 Makefile使用方法詳解

    Go Generate 代替 Makefile使用方法詳解

    這篇文章主要為大家介紹了Go Generate 代替 Makefile使用方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • 一文搞懂Golang中iota的用法和原理

    一文搞懂Golang中iota的用法和原理

    我們知道iota是go語(yǔ)言的常量計(jì)數(shù)器,本文嘗試全面總結(jié)其使用用法以及其實(shí)現(xiàn)原理,需要的朋友可以參考以下內(nèi)容,希望對(duì)大家有所幫助
    2022-08-08
  • golang構(gòu)建HTTP服務(wù)的實(shí)現(xiàn)步驟

    golang構(gòu)建HTTP服務(wù)的實(shí)現(xiàn)步驟

    其實(shí)很多框架都是在 最簡(jiǎn)單的http服務(wù)上做擴(kuò)展的的,基本上都是遵循h(huán)ttp協(xié)議,本文主要介紹了golang構(gòu)建HTTP服務(wù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • golang下的viper包的簡(jiǎn)單使用方式

    golang下的viper包的簡(jiǎn)單使用方式

    這篇文章主要介紹了golang下的viper包的簡(jiǎn)單使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • go語(yǔ)言題解LeetCode1160拼寫(xiě)單詞示例詳解

    go語(yǔ)言題解LeetCode1160拼寫(xiě)單詞示例詳解

    這篇文章主要為大家介紹了go語(yǔ)言題解LeetCode1160拼寫(xiě)單詞示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • Go語(yǔ)言調(diào)用SiliconFlow實(shí)現(xiàn)文本轉(zhuǎn)換為MP3格式

    Go語(yǔ)言調(diào)用SiliconFlow實(shí)現(xiàn)文本轉(zhuǎn)換為MP3格式

    這篇文章主要為大家詳細(xì)介紹了Go語(yǔ)言如何調(diào)用?SiliconFlow?語(yǔ)音生成?API?的腳本,用于將文本轉(zhuǎn)換為?MP3?格式的語(yǔ)音文件,感興趣的小伙伴可以了解下
    2025-02-02

最新評(píng)論