go语言day17 通道channel

Golang-100-Days/Day16-20(Go语言基础进阶)/day18_channel通道.md at master · rubyhan1314/Golang-100-Days (github.com)

 go语言day09 通道 协程的死锁-CSDN博客

         channel

                 for range 循环通道对象

      


         单向通道

                单项通道常用于函数参数,只是用来限定在函数中只能进行通道传值或者通道接收值,否则出现相应错误提示。

func setVal(ch chan <- int ){

        ch <- 1

}

func getVal(ch  <- chan int ){

        data := <- ch

        fmt.Print("接收到了值",data)

}

func main(){

        ch := make(chan int)

        go setVal(ch)

        num := <- ch

        go  getVal(ch)

        ch <- num

}


    time包下 Timer类  的 时间通道

         select case 选择通道执行

                default默认优先级最高,有default就执行defalut;

                没有default就执行能实现解除通道阻塞的case语句;

                有多个符合条件的case语句随机执行。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go言是一种静态类型、编译型的编程语言,它支持面向对象、过程式和函数式编程范式。以下是Go语言的一些基本语法: 1. 变量声明和赋值 Go语言中的变量声明和赋值使用关键字var和:=符号。例如: ``` var a int a = 10 b := "hello, world!" ``` 2. 控制流语句 Go语言中的控制流语句包括if、for、switch和select。例如: ``` if a > 0 { fmt.Println("a is positive") } else { fmt.Println("a is non-positive") } for i := 0; i < 10; i++ { fmt.Println(i) } switch day { case "Monday": fmt.Println("Today is Monday") case "Tuesday": fmt.Println("Today is Tuesday") default: fmt.Println("Today is another day") } select { case msg1 := <-ch1: fmt.Println("Received message from ch1:", msg1) case msg2 := <-ch2: fmt.Println("Received message from ch2:", msg2) default: fmt.Println("No message received") } ``` 3. 函数定义和调用 Go语言中的函数定义使用关键字func,函数调用使用函数名和参数列表。例如: ``` func add(a, b int) int { return a + b } sum := add(1, 2) fmt.Println(sum) ``` 4. 结构体和方法 Go语言中的结构体定义使用关键字type,方法定义使用关键字func和结构体类型。例如: ``` type Person struct { Name string Age int } func (p *Person) SayHello() { fmt.Printf("Hello, my name is %s and I am %d years old.\n", p.Name, p.Age) } person := Person{Name: "Alice", Age: 25} person.SayHello() ``` 这些是Go语言的一些基本语法,当然还有很多其他的语法特性和细节需要了解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值