golang

Go

golang 归并排序

46 0

归并排序的时间复杂度为:O(nlogn) func HeapSort(data []int) []int {len := len(data)if len <=1 {return data}//将待排序的数组划分为左右2部分,递归的进行mid :=len/2left :=data[:mid]right :=data[mid:]left= HeapSort(left)right= HeapSort(r

Go

手撸golang etcd raft协议之6

43 0

手撸golang etcd raft协议之6 缘起 最近阅读 [云原生分布式存储基石:etcd深入解析] (杜军 , 2019.1) 本系列笔记拟采用golang练习之 gitee: https://gitee.com/ioly/learning.gooop raft分布式一致性算法 分布式存储系统通常会通过维护多个副本来进行容错, 以提高系统的可用性。 这就引出了分布式存储系统的核心问题——如何保证多个副本的一致性?Raft算法把问题分解成了四个子问题: 1. 领袖选举(leader election)

Go

Go各时间字符串的解析

128 0

title: "Go各时间字符串的解析" date: 2021-02-28T09:08:19+08:00 draft: true tags: ['go'] author: "dadigang" author_cn: "大地缸" personal: "http://www.real007.cn"关于作者 http://www.real007.cn/about Go各时间字符串的解析Go 中时间格式化的模板 const (ANSIC = "Mon Jan _2 15:04:05 2006"Unix

Go

go每日一库 [home-dir] 获取用户主目录

66 0

关于我 我的博客|文章首发 顾名思义,go-homedir用来获取用户的主目录。实际上,通过使用标准库os/user我们也可以得到内容,使用以下方式 标准库使用 package mainimport ("fmt""log""os/user" )func main() {u, err := user.Current()if err != nil {log.Fatal(err)}fmt.Println("Home dir:", u.HomeDir) }控制台输出 Home dir: C:\Users\Adm

Go

Go语言学习6-字典类型

157 0

3. Go语言数据类型 上篇我们介绍了Go语言的切片类型,本篇我们了解一下Go语言的字典类型。主要如下: 3.4 字典 在Go语言中,字典类型的官方称谓是Map, 它是哈希表(Hash Table)的一个实现。 3.4.1 类型表示法 如果一个字典类型的键的类型为K,且元素的类型为T,那么用于表示这个字典类型的类型字面量: map[K]T 字典类型声明中的元素类型可以是任意一个有效的Go语言数据类型(除了函数类型、字典类型或切片类型)。键的类型必须是可比较的。如果字典类型的键类型是接口类型,那么就要求在程

Go

golang base64 斜杠 等号 问题

416 0

背景 写一个接口认证的时候,密码需要通过SHA1+HMAC加密以后转base64,发现加密的结果不符合预期 问题 shell里面通过命令生成的字符串 golang生产的结果有差别 具体的说,shell 生产的base64传里面有'/',对应golang生产的是'_',例如下面案例 shell输出: NaY6swRy/2BgUPuVUAWEDlaWZ3s= golang输出:NaY6swRy_2BgUPuVUAWEDlaWZ3s=原因golang base64 有不同方法进行encode/decode,可以

Go

手撸golang etcd raft协议之5

42 0

手撸golang etcd raft协议之5 缘起 最近阅读 [云原生分布式存储基石:etcd深入解析] (杜军 , 2019.1) 本系列笔记拟采用golang练习之 gitee: https://gitee.com/ioly/learning.gooop raft分布式一致性算法 分布式存储系统通常会通过维护多个副本来进行容错, 以提高系统的可用性。 这就引出了分布式存储系统的核心问题——如何保证多个副本的一致性?Raft算法把问题分解成了领袖选举(leader election)、 日志复制(log

Go

Go log

75 0

一般而言日志可分为事件日志和消息日志两种事件日志记录发生在系统运行过程中的事件,用来审计操作、诊断问题等。对理解复杂系统的运行非常关键。 消息日志被应用在比如即时通信中,用来记录来往的消息。标准的日志定义在IETF中,会记录时间、地点、参与者、起因、简要经过等信息。 日志记录一般格式:[时间][日志级别][地点][参与者][事件][起因] 对于系统日志一般还会定义严重性等级(Severity Level)用来标识该条日志记录的紧要程度紧要程度 日志级别0 EMERGENCY1 ALERT2 CREITIC