Go语言发送邮件 邮件协议各种事物都有一个规范,也就是协议,比如我们在浏览器里面浏览网页,需要遵循各种网络协议,我们先来简单了解一下都有哪些协议 SMTP SMTP是 简单邮件传输协议,是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。它通常在 25、465、587 端口上运行。 另外 SMTP 协议属于TCP/IP协议簇 POP3 邮局协议的第3个版本,是因特网电子邮件的第一个离线 2025-01-12 开发 #Go
Git Commit 规范 git commit 规范1. Commit 信息的基本格式1234<type>(<scope>): <subject><body> # 可选<footer> # 可选 2. 详细说明2.1. type(类型)描述本次提交的性质,通常包括以下几类: 类型 描述 feat 新功能(feature) fix 修复 Bu 2024-12-11 开发 #Git
数据结构 常见的数据结构包括数组、链表、栈、队列、哈希表、树、堆、图,它们可以从“逻辑结构”和“物理结构”两个维度进行分类。 分类根据逻辑结构:线性与非线性逻辑结构揭示了数据元素之间的逻辑关系。在数组和链表中,数据按照一定顺序排列,体现了数据之间的线性关系;而在树中,数据从顶部向下按层次排列,表现出“祖先”与“后代”之间的派生关系;图则由节点和边构成,反映了复杂的网络关系。 逻辑结构可分为“线性”和“非线性 2024-12-04 算法 #算法
MySql事务 1. 事务的基础概念及ACID特性1.1 什么是事务事务(Transaction)是访问和更新数据库的程序执行单元;事务中可能包含一个或多个sql语句,这些语句要么都执行,要么都不执行。作为一个关系型数据库,MySQL支持事务。 1.2 事务的四大特性(ACID) 原子性(Atomicity):事务是最小的执行单位,不可再分割。事务的操作要么全部成功,要么全部失败回滚。 一致性(Consisten 2024-10-31 开发 #MySql
依赖注入 什么是依赖注入依赖注入 (Dependency Injection,缩写为 DI),可以理解为一种代码的构造模式(就是写法),按照这样的方式来写,能够让你的代码更加容易维护。 在GO语言中,wire是由 google 开源的一个供 Go 语言使用的依赖注入代码生成工具。它能够根据你的代码,生成相应的依赖注入 go 代码。 而与其它依靠反射实现的依赖注入工具不同的是,wire 能在编译期(准确地说是 2024-10-16 开发 #Go
Golang单机锁 sync.Mutex核心机制 通过 Mutex 内一个状态值标识锁的状态,例如,取 0 表示未加锁,1 表示已加锁; 上锁:把 0 改为 1; 解锁:把 1 置为 0. 上锁时,假若已经是 1,则上锁失败,需要等他人解锁,将状态改为 0. 下面首先拎清两个概念: 饥饿模式:当 Mutex 阻塞队列中存在处于饥饿态的 goroutine 时,会进入模式,将抢锁流程由非公平机制转为公平机制.这 2024-09-26 开发 #Go
trie树 定义字典树,英文名 trie。顾名思义,就是一个像字典一样的树。 可以发现,这棵字典树用边来代表字母,而从根结点到树上某一结点的路径就代表了一个字符串。 举个例子,$1→4→8→12$ 表示的就是字符串 caa。 实现123456789101112131415161718192021222324252627282930313233343536373839404142434445int getnu 2024-08-06 算法 #算法
线段树 简介线段树是算法竞赛中常用的用来维护 区间信息 的数据结构。 线段树可以在 $O (log N)$ 的时间复杂度内实现单点修改、区间修改、区间查询(区间求和,求区间最大值,求区间最小值)等操作。 线段树将每个长度不为1的区间划分成左右两个区间递归求解,把整个线段划分为一个树形结构,通过合并左右两区间信息来求得该区间的信息。这种数据结构可以方便的进行大部分的区间操作。 过程有个大小为 $5$ 的数组 2024-07-26 算法 #算法
Squaring 题目链接: Problem - C - Codeforces 题目描述ikrpprpp 发现了一个由整数组成的数组 $a$ 。他喜欢公平,所以想让 $a$ 变得公平,也就是让它不递减 为此,他可以对数组中的索引 $1≤i≤n$ 进行公正操作,将 $a_i$ 替换为 $a_i^2$ (位置 $i$ 的元素及其平方)。例如,如果 $a=[2,4,3,3,5,3]$ ,ikrpprpp 选择 2024-07-24 算法 #题解
树状数组 简介树状数组是一种支持 单点修改 和 区间查询 的,代码量小的数据结构。 普通树状数组维护的信息及运算要满足 结合律 且 可差分,如加法(和)、乘法(积)、异或等。 事实上,树状数组能解决的问题是线段树能解决的问题的子集:树状数组能做的,线段树一定能做;线段树能做的,树状数组不一定可以。然而,树状数组的代码要远比线段树短,时间效率常数也更小。 有时,在差分数组和辅助数组的帮助下,树状数组还可解决更 2024-07-24 算法 #算法