首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
go
时光倒流七十年
创建于2023-10-12
订阅专栏
关于go
暂无订阅
共15篇文章
创建于2023-10-12
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
golang问题
A. B. C. D. A. var str string B. str := "" C. str = "" D. var str = "" 变量存储的是一个地址,这个地址存储最终的值。内存通常在堆上分配。通过GC回收。 指针、slice、map、chan、interface等…
golang 匿名函数闭包
何为闭包 一个函数和与其相关的引用环境组合而成的实体 下面这篇文章写得很详细,将根据这个文章分析 https://studygolang.com/articles/14696?fr=sidebar 匿
context
context https://www.bilibili.com/video/BV1Nb411U7mX https://www.bilibili.com/video/BV1xV411d7mN http
go散记
import 下划线(如:import _ hello/imp)的作用:当导入一个包时,该包下的文件里所有init()函数都会被执行,然而,有些时候我们并不需要把整个包都导入进来,仅仅是是希望它执行init()函数而已。这个时候就可以使用 import _ 引用该包。即使用【i…
go channel 源码剖析
channel实现的源码在官方的runtime/chan.go下面,加注释一共700+行代码,下面来看他的实现 channel 底层结构是 Go 语言提供了一种不同的并发模型,即通信顺序进程(Comm
golang select源码剖析
具体源码在 runtime/select.go下面,只有500+行代码 select的几大特点 1.可以实现两种收发操作,阻塞收发和非阻塞收发 2.当多个case ready的情况下会随机选择一个执行
golang sync.Map 源码剖析
sync.Map的数据结构如下 read的数据结构是 entry的数据结构 虽然read 和 dirty 有冗余数据,但这readOnly.m和Map.dirty存储的值类型是*entry,是一个指针
golang map源码剖析
具体源码在 runtime/map.go下面,有1300+行代码 golang 的map底层使用哈希表实现的,源码中对应是一个结构体,具体如下 每个map里面有若干桶,hmap里面只记录了桶的地址,找
golang DeepEqual
切片 方法中判断切片是否相等具体代码如下,可以看出满足下面两点 1.两个切片len长度相等 2.指向同一个内存地址,即数据源是同一个 or 每一个位置对应元素都相等,两者满足一个就行 上面示例满足指针
sync once
once包保证方法只能执行一次,使用如下 结构体如下 用done 来表示是否执行过了,至于为什么是uint32,而不是1bit,是因为他需要执行原子操作,使用的方法是下面这个,参数是uint32,所以
接口值interface
1.一个接口类型的值,简称接口值 2.接口值 有两部分组成 一个具体类型 和 该类型的一个值。二者成为接口的动态类型和动态值 3.接口的零值 也可以说是初始值 是 动态类型 和动态值 都为 nil 4
sort 排序包
1.在很多语言中,排序算法跟数据类型绑定,排序函数实现和序列的元素类型绑定,但是go中sort.Sort对序列和其中元素的布局无任何要求,只是使用sort.Interface接口 指定协议 2.任何一
ERROR接口
1.error是一个接口,实现他要满足有Error方法 2.包里面提供了一个类型实现了接口,可以直接调用New方法返回一个error 3.New方法返回的是*errorString指针类型,所以两个N
golang 调度
每个OS的线程都有一个固定大小的栈内存,通常是2MB,栈内存区域用于保存在其它函数调用期间那些正在执行或临时暂停的函数中的局部变量,这样固定大小的栈,既太大,又太小,往往不能满足多变的场景。 2MB固
go中常见设计模式
大部分内容来自于文章,有改动和自己思考https://time.geekbang.org/column/article/386238 why? 在软件开发中,经常会遇到各种各样的编码场景,这些场景往往