当前位置: 亚洲城ca88 > ca88 > 正文

Go语言中的switch用法实例深入分析,Go语言实现行

时间:2019-06-27 23:07来源:ca88
package main 本文实例讲述了Go语言中Select语句用法。分享给大家供大家参考。具体分析如下: 没有条件的 switch 同 switch true 一样。 func main() {  go timer1()  timer2() } 希望本文所述对大家的

package main

本文实例讲述了Go语言中Select语句用法。分享给大家供大家参考。具体分析如下:

没有条件的 switch 同 switch true 一样。

func main() {
 go timer1()
 timer2()
}

希望本文所述对大家的Go语言程序设计有所帮助。

这里你可能已经猜到 switch 可能的形式了。
case 体会自动终止,除非用 fallthrough 语句作为结尾。

func testTimer2() {
 go func() {
  fmt.Println("test timer2")
 }()
}

package main
import "fmt"
func fibonacci(c, quit chan int) {
        x, y := 1, 1
        for {
                select {
                case c <- x:
                          x, y = y, x y
                case <-quit:
   fmt.Println("quit")
                        return
                }
        }
}
func main() {
        c := make(chan int)
 quit := make(chan int)
 go func() {
  for i := 0; i < 10; i {
   fmt.Println(<-c)
  }
  quit <- 0
 }()
 fibonacci(c, quit)
}

复制代码 代码如下:

本文实例讲述了Go语言实现定时器的方法。分享给大家供大家参考。具体实现方法如下:

复制代码 代码如下:

package main
import (
 "fmt"
 "time"
)
func main() {
 t := time.Now()
 switch {
 case t.Hour() < 12:
     fmt.Println("Good morning!")
 case t.Hour() < 17:
     fmt.Println("Good afternoon.")
 default:
     fmt.Println("Good evening.")
 }
}

希望本文所述对大家的Go语言程序设计有所帮助。

复制代码 代码如下:

package main
import (
 "fmt"
 "runtime"
)
func main() {
 fmt.Print("Go runs on ")
 switch os := runtime.GOOS; os {
 case "darwin":
  fmt.Println("OS X.")
 case "linux":
  fmt.Println("Linux.")
 default:
  // freebsd, openbsd,
  // plan9, windows...
  fmt.Printf("%s.", os)
 }
}

func timer1() {
 timer1 := time.NewTicker(1 * time.Second)
 for {
  select {
  case <-timer1.C:
   testTimer1()
  }
 }
}

为了非阻塞的发送或者接收,可使用 default 分支:

switch i {
case 0:
case f():
}
当 i==0 时不会调用 f。)

}

当 select 中的其他条件分支都没有准备好的时候,default 分支会被执行。

switch 的条件从上到下的执行,当匹配成功的时候停止。

func testTimer1() {
 go func() {
  fmt.Println("test timer1")
 }()

select 语句使得一个 goroutine 在多个通讯操作上等待。
select 会阻塞,直到条件分支中的某个可以继续执行,这时就会执行那个条件分支。当多个都准备好的时候,会随机选择一个。

(例如,

您可能感兴趣的文章:

  • Go语言中定时器cron的基本使用教程

您可能感兴趣的文章:

  • 简介Go语言中的select语句的用法
  • Go语言中的switch用法实例分析
  • 深入剖析Go语言编程中switch语句的使用
  • Golang中switch语句和select语句的用法教程

希望本文所述对大家的Go语言程序设计有所帮助。

import (
 "fmt"
 "time"
)

select {
case i := <-c:
// use i
default:
// receiving from c would block
}

本文实例讲述了Go语言中的switch用法。分享给大家供大家参考。具体分析如下:

复制代码 代码如下:

默认选择

复制代码 代码如下:

func timer2() {
 timer2 := time.NewTicker(2 * time.Second)
 for {
  select {
  case <-timer2.C:
   testTimer2()
  }
 }
}

package main
import (
 "fmt"
 "time"
)
func main() {
        tick := time.Tick(1e8)
        boom := time.After(5e8)
        for {
                select {
                case <-tick:
                        fmt.Println("tick.")
                case <-boom:
                        fmt.Println("BOOM!")
                        return
                default:
                        fmt.Println("    .")
                        time.Sleep(5e7)
                }
        }
}

package main
import (
 "fmt"
 "time"
)
func main() {
 fmt.Println("When's Saturday?")
 today := time.Now().Weekday()
 switch time.Saturday {
 case today 0:
  fmt.Println("Today.")
 case today 1:
  fmt.Println("Tomorrow.")
 case today 2:
  fmt.Println("In two days.")
 default:
  fmt.Println("Too far away.")
 }
}

复制代码 代码如下:

这一构造使得可以用更清晰的形式来编写长的 if-then-else 链。

您可能感兴趣的文章:

  • Golang中switch语句和select语句的用法教程
  • 深入剖析Go语言编程中switch语句的使用
  • Go语言每天必学之switch语句

编辑:ca88 本文来源:Go语言中的switch用法实例深入分析,Go语言实现行

关键词: 亚洲城ca88