go
静心不浮躁
这个作者很懒,什么都没留下…
展开
-
Go Map 简介 和 实现解析
序言map 是go 中一种很重要的 映射查找的数据结构,通过 key 的hash 运算来找到 值,这在各个语言中都不少见,这篇我们主要讲go map 的使用和其内部实现。正文map的使用关于 map的使用问题, 如下map的声明为 /* 声明变量,默认 map 是 nil */var map_variable map[key_data_type]value_data_type/* 使用 make 函数 */map_variable := make(...原创 2020-11-12 14:22:18 · 2351 阅读 · 3 评论 -
Go系列 --Context 解析
序言:关于 go的并发编程正文前言需知, channel 的使用https://blog.csdn.net/dongjijiaoxiangqu/article/details/1096427331.context 的使用场景context 的含义,context 意为上下文, go中的context 的主要使用场景为在多个goroutine 中进行 通信,避免浪费无用的计算资源。打个比方:比如说一个 网络请求中, 系统起了一个 go routine A来服务此请...原创 2020-11-12 14:10:09 · 969 阅读 · 0 评论 -
Go系列 --channel 及其介绍
序言go 中以 goroutine 为最小并发单元,具有比线程更小的开销,使得go的并发和切换性能较强。 而goroutine 之间的相互通信就需要靠 channel来实现。不像 一般语言,线程之间共享信息的方式是通过共享内存方式来进行,为了保护数据安全,通常访问时候需要加锁,或者采用乐观锁技术(CAS比较),当然go也实现了共享内存加锁方式。 而channel 就像是信道,两个不同的goroutine 相互通信时候,一方充当消费者,另一方充当生产者,信道就像是消息队列有FIFO的性质,g...原创 2020-11-12 14:08:05 · 2126 阅读 · 0 评论 -
浅谈 Go中的 Array 和 Slice
Go中参数传递的方式只有传值一种方式,不像C++还有传引用的方式Array声明一个 array的方式为:var variable_name [SIZE] variable_type 例子: var arr[10] int值得注意的是,这里的size 作为明确的参数,需要显示的传进来, arr[10] int 和 arr[12]int 是不能使用简单的方式互转的Array,进行赋值或者传参都是拷贝值,不影响原始数组:例子: func enterAndLeaveCall(t...原创 2020-08-04 10:40:16 · 302 阅读 · 0 评论 -
Go中指针绑定函数和值绑定函数的区别
本文阐述,go语法中,指针绑定函数和 值绑定函数的区别和表现首先先定义一个struct,然后定义两个方法,一个用pointer 绑定,一个用value绑定 type StructA struct { name string}func(a *StructA) sayHelloPoint() { a.name="helloPoint"}func (a StructA) sayHelloNoPoint() { a.name="helloNopoint"}...原创 2020-06-22 10:18:00 · 832 阅读 · 2 评论 -
Effective Go
命名规范:function 的命名有讲究, 首字母是否大写代表了 该函数的可见性, 大写表示可见,小写表示包外不可见 package name 一般简洁简短即可单词小写,因为import时候可以重命名,所以不用担心命名碰撞 package name 一般也是source dir的名字,例如the package insrc/encoding/base64is imported as"encoding/base64"but has namebase64, notencoding_b...原创 2020-06-19 14:21:07 · 1031 阅读 · 0 评论