首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
golang/够浪
uccs
创建于2023-05-10
订阅专栏
前端学 golang,谁能比我浪
等 37 人订阅
共66篇文章
创建于2023-05-10
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
go 第三方库源码解读---golang-set
我们今天来学习 golang-set 包,这是一个用于处理集合的包,它提供了一些常用的集合操作,比如并集、交集、差集等,并且支持线程安全 学习一个库从它的测试用例开始,我们来看的第一个测试用例时用力测
go 第三方库源码解读---go-errorlint
analysis.Pass 中有一个 TypesInfo 字段,这个字段的保存这语法类型相关的信息 analysis.Pass.TypesInfo: Types:把每个合法表达式与其类型关联起来,比如
go 第三方库源码解读解读 —— go-multierror
我们先来定义一个自定义错误 Error 的结构体 这个结构体有两个字段 Errors 存储错误信息的切片 ErrorFormat 存储错误格式化函数 这个自定义的结构体需要实现 error 接口,才是
go 获取环境变量 godotenv 库源码解读
在学习完 https://github.com/caarlos0/env 这个库之后,我发现这个库的功能非常强大,可以很方便的将环境变量转换为结构体,这样就可以很方便的使用环境变量了。 但这个库有一个
go 字符串赋值中的一些问题
字符串的拼接方式 使用 + 号 使用 + 号拼接字符串的方式,每次拼接都会创建一个新的字符串,然后将原来的字符串复制到新的字符串中,这样会导致大量的内存分配和复制操作,性能较差。 字符串格式化函数 f
env 中实现自定义 options 和 api
env 这个库提供的 Parse() 使用的是默认参数 如果你需要自定义参数的话,env 这个库提供了一个 ParseWithOptions(),可以传入自定义的 options Options 的参
设置 env tag options
env 这个库提供了一些 tag options ,expand: 从环境变量中插入进来,例如 FOO_${BAR} ,file: 环境变量应该是一个文件的路径 ,init: 给指针类型的结构体参数
如何 reflect 使用 json tag
在学习了 利用 reflect 给基本类型设置值 之后,我们再来看看如何在 reflect 中使用 json tag 默认值设置 env 这个库中内置 env 这个 json tag,去环境变量中去读
利用 reflect 给基本类型设置值
在学习 go 反射时,发现了一个用于解析 env 的库: github.com/caarlos0/env/v11,其内部是用反射实现的 它使用是比较简单的,调用 env.Parse 就能拿到你想要的环
go 的 runtime 有有哪些功能
编译过程 词法分析 由词法分析器(lexer)将源代码文件转换成 Token 序列 每一个 Token 表示一个词法单元,比如标识符,关键字,常量等等 Token 分成四类 特殊类型 基础类型 运算符
go 语言进阶
什么是 context context 是协程的上下文,在 go 1.7 版本中引入,用于传递跟踪、取消信号和超时信息 context 最佳实践的: 在函数的签名中传递 context,不推荐在结构体
go 语言基础
设置环境变量: go.mod 和 go.sum go.mod 和 go.sum 的区别 go.mod:只记录依赖包不含 go.mod 的间接依赖包 go.sum:记录所有的依赖包 在 go.mod 文
你是否了解 defer 的特性
defer 函数是 go 语言用来延迟执行的语句,defer 语句会在函数返回之前执行,可以用来释放资源、解锁、关闭文件等操作 关于 defer 的一些特性,你是否足够了解? defer 表达式会影响
用 go 手写一个 ping,只要 200 行
手写 200 行实现 ping,用于熟悉 ping 用到的网络协议 ip,icmp,cname 等知识点
go 中 高并发下的内存模型与垃圾回收
go 的栈为什么在堆上 内存模型和垃圾回收和 go 的高并发特性是息息相关 go 的协程栈的作用: 协程的执行路径 局部变量: 方法内部声明的局部变量,如果只是在内部使用的话,会记录在协程栈上 方法中
go 高并发 TCP 网络编程
什么是非阻塞 I/O 下图是四层网络分层,其中数据链路层和网络层都是不可靠的,到了传输层就是可靠的了,机器和机器才能进行可靠的传输,RESP 协议是属于应用层的 TCP 通信过程也就是通过三次握手建立
用 go 实现 Redis 集群
之前实现的 redis 是个单机版的 redis,现在要实现一个 redis 集群 在单节点的 redis 中,如果无法满足需求了,比如:计算能力不足,吞吐量不够,数据量太大等等,这时候就需要搭建集群
用 go 实现 Redis 持久化
redis 是一个内存数据库,如果你把进程杀掉,那么里面存储的数据都会消失,那么这篇文章就是来解决 redis 持久化的问题 我们在 redis.conf 文件中增加两个配置 appenonly 表示
用 go 实现内存数据库
实现 dict 我们先来定义 redis 内部的数据结构 dict,dict 是一个 key-value 的数据结构,key 是一个字符串,value 是一个 interface{} dict 会有很
用 go 实现 redis resp 协议解析器
redis 网络协议 Redis Serialization Protocol 是 Redis 的网络协议,简称 RESP 它是一种文本协议,基于 TCP 协议,用于 Redis 服务器和客户端之间的
下一页