Golang第三天

前端之家收集整理的这篇文章主要介绍了Golang第三天前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

不得不说一句,我开始写的部分笔记没有发表,只是保存起来,为什么现在看不到了呢

---------------------------------------------------------------------------

不得不说的channel

1、channel只能使用make 来创建

2、channel分为两种:一种是有buffer的,另一种是没有buffer的。

备注:有缓冲的channel,先放后取

无缓冲的channel,先取后放

其实说的形象点就是:无缓冲相当于TCP,有缓冲相当于UDP

套用网上文章

有缓冲

无缓冲的 就是一个送信人去你家门口送信 ,你不在家 他不走,你一定要接下信,他才会走。

无缓冲保证信能到你手上

有缓冲的 就是一个送信人去你家仍到你家的信箱 转身就走 ,除非你的信箱满了 他必须等信箱空下来。

有缓冲的 保证 信能进你家的邮箱


var a string 
var c = make(chan int,10) 
   
func f() { 
    a = "hello,world"
    c <- 0
} 
   
func main() { 
    go f() 
    <-c 
    print(a) 
  
}
无缓冲

var a string 
var c = make(chan int) 
   
func f() { 
    a = "hello,world"
    <-c 
} 
   
func main() { 
    go f() 
    c <- 0
    print(a) 
  
}

-----------------------

设置超时

select {

case v := <-c:

case <-time.After(3 * time.second)

fmt.printlin("超时");

}

猜你在找的Go相关文章