go语言中的case Go语言中的常量下列说法正确的是

在go语言中select关键字怎么用?

select 语句使得一个 goroutine 在多个通讯操作上等待。

创新互联专注于海勃湾网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供海勃湾营销型网站建设,海勃湾网站制作、海勃湾网页设计、海勃湾网站官网定制、微信小程序服务,打造海勃湾网络公司原创品牌,更为您提供海勃湾网站排名全网营销落地服务。

select 会阻塞,直到条件分支中的某个可以继续执行,这时就会执行那个条件分支。当多个都准备好的时候,会随机选择一个。

复制代码代码如下:

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)

}

默认选择

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

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

select {

case i := -c:

// use i

default:

// receiving from c would block

}

复制代码代码如下:

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)

}

}

}

golang减少switch

相比较 C 和 Java 等其它语言而言,Go 语言中的 switch 结构使用上更加灵活。它接受任意形式的表达式,例如:

switch var1 {

case val1:

...

case val2:

...

default:

...

}

变量 var1 可以是任何类型,而 val1 和 val2 则可以是同类型的任意值。类型不被局限于常量或整数,但必须是相同的类型;或者最终结果为相同类型的表达式。前花括号{必须和 switch 关键字在同一行。 您可以同时测试多个可能符合条件的值,使用逗号分割它们,例如:case val1, val2, val3。每一个 case 分支都是唯一的,从上至下逐一测试,直到匹配为止。一旦成功地匹配到每个分支,在执行完相应代码后就会退出整个 switch 代码块,也就是说你不需要特别使用 break 语句来表示结束。

Go语言里面switch默认相当于每个case最后带有break,匹配成功后不会自动向下执行其他case,而是跳出整个switch。

Go语言基础语法(一)

本文介绍一些Go语言的基础语法。

先来看一个简单的go语言代码:

go语言的注释方法:

代码执行结果:

下面来进一步介绍go的基础语法。

go语言中格式化输出可以使用 fmt 和 log 这两个标准库,

常用方法:

示例代码:

执行结果:

更多格式化方法可以访问中的fmt包。

log包实现了简单的日志服务,也提供了一些格式化输出的方法。

执行结果:

下面来介绍一下go的数据类型

下表列出了go语言的数据类型:

int、float、bool、string、数组和struct属于值类型,这些类型的变量直接指向存在内存中的值;slice、map、chan、pointer等是引用类型,存储的是一个地址,这个地址存储最终的值。

常量是在程序编译时就确定下来的值,程序运行时无法改变。

执行结果:

执行结果:

Go 语言的运算符主要包括算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符以及指针相关运算符。

算术运算符:

关系运算符:

逻辑运算符:

位运算符:

赋值运算符:

指针相关运算符:

下面介绍一下go语言中的if语句和switch语句。另外还有一种控制语句叫select语句,通常与通道联用,这里不做介绍。

if语法格式如下:

if ... else :

else if:

示例代码:

语法格式:

另外,添加 fallthrough 会强制执行后面的 case 语句,不管下一条case语句是否为true。

示例代码:

执行结果:

下面介绍几种循环语句:

执行结果:

执行结果:

也可以通过标记退出循环:

--THE END--

Go语言中怎样判断数据类型

要判断数据类型,可以用Go的空接口:

建一个函数t 设置参数i 的类型为空接口,空接口可以接受任何数据类型

func t(i interface{}) {

//函数t

有一个参数i

switch i.(type) {

//多选语句switch

case string:

//是字符时做的事情

case int:

//是整数时做的事情

}

return

}

i.(type)

只能在switch中使用

这函数没有返回值,你可以自己加入

还可以用反射:

package main

import (

"fmt"

"reflect"

)

func main() {

var x float64 = 3.4

fmt.Println("type:", reflect.TypeOf(x))

}

这样就可以得出变量x的类型信息,与上面不同的是:上面的方法要先知到它是几个类型中的一个,而这个方法可以对任意对象使用


本文标题:go语言中的case Go语言中的常量下列说法正确的是
浏览路径:http://ybzwz.com/article/ddigdsj.html