刷新
Go红队开发—基础语法入门

博主头像 目录基础语法语法框架数据类型类型转换变量var定义常量iota 枚举数组切片结构体结构体方法指针map类型转换导入包字符串strings包字符拼接ContainsReplace更多函数解释输入输出字符串格式化fmt:Scanf、Scan、ScanlnScanfScanScanlnfmt:Printl ...

使用Go复刻skiplist核心功能

博主头像 0、引言 正好做LC每日一题要求实现一个跳表,于是学习了redis的扩展skiplist,并使用Go进行复刻学习。学习参考了文章:Redis内部数据结构详解(6)——skiplist - 铁蕾的个人博客 因为作者能力有限,本文只是对跳表的核心功能:创建节点与跳表、插入节点、删除节点、获取节点rank ...

Go日期时间处理工具Carbon

博主头像 一个轻量级的、易于使用的、语义智能的日期时间处理库,支持链式调用,已被 [awesome-go](https://github.com/yinggaozhen/awesome-go-cn#日期和时间) 收录,现已经捐赠给了 [dromara](https://dromara.org/) 组织 ...

ko Easy Go 容器构建

ko 是一个适用于 Go 应用程序的简单、快速的容器镜像构建器 官方网站 镜像包含单个go应用程序,且对os基础镜像没有太多的依赖 ko 通过本地机器上执行go build来构建镜像,因此无需安装docker。非常适合轻量级CI/CD用例 安装 安装 示例 环境变量 KO_DOCKER_REPO: ...

goland2024如何安装?附安装包和激活方式

博主头像 前言 大家好,我是小徐啊。goland是我们开发Go语言时的常用的开发工具,功能强大,今天,小徐就来介绍下如何安装和获取激活方式。文末附获取方式。 如何安装和激活goland 首先,我们双击下goland2024安装包,开始安装。 然后,我们点击下运行按钮。 然后,我们点击下一步按钮。 然后,我们选 ...

Golang sync.pool源码解析

博主头像 sync.Pool 是 Go 中用于对象复用的工具,可减少频繁创建和销毁对象的开销,从而优化内存使用和降低 GC 压力。本文通过分析其用法、真实案例及源码结构,详细解读了 sync.Pool 的读写流程及其背后的高效设计思想,为性能优化提供了实用参考。 ...

Ellyn-Golang调用级覆盖率&方法调用链插桩采集方案

博主头像 在应用程序并行执行的情况下,精确获取单个用例、流量、单元测试走过的方法链(有向图)、出入参数、行覆盖等运行时数据,经过一定的加工之后,应用在覆盖率、影响面评估、流量观测、精准测试、流量回放、风险分析等研发效能相关场景。 ...

golang自带的死锁检测并非银弹

博主头像 网上总是能看到有人说go自带了死锁检测,只要有死锁发生runtime就能检测到并及时报错退出,因此go不会被死锁问题困扰。 这说明了口口相传知识的有效性是日常值得怀疑的,同时也再一次证明了没有银弹这句话的含金量。 这个说法的杀伤力在于它虽然不对,但也不是全错,真真假假很容易让人失去判断力。 死锁检测 ...

实战:Go语言项目之使用JWT实现用户认证

博主头像 实战:Go语言项目之使用JWT实现用户认证 基于cookie-Session 和基于token的认证模式 需求:请求分类 用户认证 HTTP 是一个无状态的协议,一次请求结束后,下次再发送,服务器就不知道这个请求是谁发过来的(同一个 IP 不代表同一个用户),在Web 应用中,用户的认证和鉴权是非常 ...

Go语言基础数据类型详解:整型、浮点型、复数与字符串

博主头像 Go语言基础数据类型详解:整型、浮点型、复数与字符串 Go语言作为一门静态强类型的语言,其数据类型设计简洁而高效。掌握Go的基本数据类型是每个开发者深入理解Go语言的基础。本篇文章将详细介绍Go语言中最常见的基本数据类型,包括整型、浮点型、复数、布尔型、字符串等,并结合实例代码演示如何在Go中使用这 ...

Golang内存模型与源码解析

博主头像 0、引言 本篇笔记用于记录作者在学习Golang的GC模型之前,对Golang内存模型的学习。目前使用的Go版本为1.22.4 1、Golang内存管理宏观结构 假设我们每次向内存池申请空间时,都需要频繁地向操作系统发出请求,这不仅会增加内存分配的时间,还可能引入竞争和锁的开销,从而导致性能瓶颈。尤 ...

[golang]读取常见配置文件

博主头像 前言 主要介绍 yaml、toml、json、ini格式文件的配置读取。 除了以下方式,更方便的做法是用viper,不过配置结构可能不会很清晰。 YAML 假设yaml文件内容如下 # 基本键值对 string_key: "这是一个字符串" integer_key: 42 float_key: 3. ...

<1···345···7>