go
文章平均质量分 61
go语言文章记录
RachelHwang
鹏城百晓生
展开
-
go语法 — 多路选择操作符 select的用法
在golang语言中,select语句 就是用来监听和channel有关的IO操作,当IO操作发生时,触发相应的case动作。有了 select语句,可以实现 main主线程 与 goroutine线程 之间的互动。select 使用时类似 switch-case 的用法,适用于处理多通道的场景,会通过类似 are-you-ready-polling 的机制来工作。2、阻塞与非阻塞 selectselect 默认是阻塞的,当没有 case 处于激活状态时,会一直阻塞住,极端的甚至可以这样用:通过增加原创 2022-06-05 16:03:00 · 1965 阅读 · 0 评论 -
go语法 — channel的基础用法
Channel 是 go 语言内置的一个非常重要的特性,也是 go 并发编程的两大基石之一(另一个是 go ,也就是 goroutine ),Go内建channel实现了go协程之间数据的读写相关操作。在 go 语言中,channel 就是 goroutine 之间通过通信来共享内存的手段。 channel 也作为一个队列,会保证数据收发顺序总是按照先入先出的原则进行,可以看作 go 程序内部的一个 FIFO 队列,一些 goroutine 向其中生产数据,另外一些消费数据,同时也会保证同一时刻有且仅有一个原创 2022-06-05 13:43:05 · 3797 阅读 · 0 评论 -
go语法 — var && make && new 的用法和区别
go语法 — var && make && new 的用法和区别原创 2022-06-02 00:00:16 · 490 阅读 · 0 评论 -
go语法 — interface接口值的使用规则和用法
1. interface 的比较interface 不是单纯的值,而是分为类型和值,一个是 type,一个是 data,所以传统认知的此 nil 并非彼 nil,必须得类型和值同时都为 nil 的情况下,interface 的 nil 判断才会为 true。例如:对于这样一个变量var age interface{} = 25其实内部结构是因此两个 interface 比较,势必与这两个字段有所关系。经过验证,只有下面两种情况,两个 interface 才会相等。1.1 第一种情况ty原创 2022-05-22 10:56:49 · 930 阅读 · 0 评论 -
go语法 — defer的用法
1、什么是defer?defer是Go语言中的延迟执行语句,用来添加函数结束时执行的代码,常用于释放某些已分配的资源、关闭数据库连接、断开socket连接、解锁一个加锁的资源。Go语言机制担保一定会执行defer语句中的代码。其它语言中也有类似的机制,比如Java、C#语言里的finally语句。defer没有嵌套,defer的机制是要取代try except finally2、defer的使用规则规则一:当defer被声明时候,其参数就会被实时解析func a() { i := 0 defer原创 2022-05-20 21:44:38 · 906 阅读 · 0 评论 -
go语法 — 如何使用指针*和取址&
如何区分指针*和取址&指针类似于变量和常量,在使用指针前你需要声明指针。指针声明格式如下:var name *Type指针是指向一个值的内存地址,也就是说指针变量存放的是某个值或者对象的内存地址,即指针变量占用字节的大小与所指向的值的大小无关。当一个指针被定义后没有分配到任何变量时,它的默认值为nil。指针变量存放的是一个值的内存地址,那如何获取一个变量的内存地址呢?那就需要使用取址符号&。将一个值的内存地址通过&赋值给了指针,那又应该如何通过指针来读取对应的值?需要原创 2022-05-15 01:16:13 · 2126 阅读 · 0 评论