![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Go语言学习
了-凡
分享、感恩、努力、学习、坚持、梦想
还有请叫我小黄^O^
展开
-
编码:全排列的递归与字典序实现
原创 2021-03-23 16:27:46 · 153 阅读 · 0 评论 -
编码:异或定律的应用,位运算求出现次数不同的数字
原创 2021-03-19 23:27:51 · 155 阅读 · 0 评论 -
编码:鸽巢原理,带你求解数组中超半数的数字
原创 2021-03-18 16:31:38 · 99 阅读 · 0 评论 -
编码:Manacher(马拉车)算法,求最长回文串,奇怪的解题方式又增加了
原创 2021-03-14 19:50:21 · 74 阅读 · 0 评论 -
编码:horspool字符串匹配,折磨先生又来了
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210302223113813.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0MzI2MzIx,size_16,color_FFFFFF,t_70)原创 2021-03-02 22:32:40 · 130 阅读 · 1 评论 -
编码:sunday字符串匹配,“愉快”的一天又开始了
原创 2021-03-02 22:26:32 · 111 阅读 · 0 评论 -
震惊,让领导差点脑溢血的字符串匹配算法KMP
原创 2021-02-27 15:02:35 · 80 阅读 · 0 评论 -
编码:Lumuto划分,实现快速选择
文章目录聊聊lomuto划分快速选择写在最后 “ 分治:把问题的范围缩小,把解题的效率提高。” 在生活当中,很多情景会让我们不知不觉使用到搜索,比如说找到家里年龄最大的人是谁,找到一堆纸币中发行时间最久的是哪一张,总之,在日常生活中,不知不觉的也在使用算法去解决一些看似简单的问题。 今天提到的.原创 2021-02-22 10:27:57 · 336 阅读 · 0 评论 -
Go源码分析:merge
文章目录写在前面配置特殊处理Merge方法1、前置处理2、目标数据类型为struct3、目标数据类型为mapa、初始化Mapb、判断src不是Mapc、遍历Map的key1、零值覆盖2、struct\ptr\map类型处理3、slice的处理4、map的设值处理5、完整的代码处理4、目标数据类型为slice5、目标数据类型为ptr、接口6、默认处理Map方法测试代码1、基本测试2、空值测试3、Slice测试写在前面go每日一库参考地址:https://segmentfault.com/a/119000原创 2021-02-09 15:57:45 · 904 阅读 · 0 评论 -
Go源码分析:mapstructure
mapstructure源码阅读map转结构体map切片转结构体切片map部分转换 ------------------分享使人进步原创 2021-01-27 13:56:10 · 3228 阅读 · 0 评论 -
Go源码解析:copier库
注:该文章源码分析参考copier目录源码包代码阅读1、tag标签说明2、静态参数3、整体设计4、辅助方法说明I、获取实际的Type和ValueII、Tag处理III、获取结构体Field切片IV、检查结构体复制结果V、对结构体进行设值5、Copy主方法说明I、参数说明II、不可寻址III、非ValidIV、可转换结构体的转换V、两个类型都是map的处理VI、只有一个类型是结构体的处理VII、判断数组设置标识VIII、根据.原创 2021-01-06 17:29:19 · 2596 阅读 · 0 评论 -
Go工程下载包 Sum.goland.org无法连通问题
参考:go proxy 设置原创 2020-12-15 13:51:14 · 179 阅读 · 0 评论 -
Go:自定义前缀树工具
目录1、什么是前缀树2、前缀树的作用3、代码实现1、结构体分析2、初始化结构体3、添加字符串4、删除字符串5、查找字符串6、遍历字符串7、自定义处理8、前缀精准匹配9、前缀模糊匹配4、测试代码1、什么是前缀树参考知乎的解答:前缀树(知乎)前缀树在字符串查找起到很重要的作用,它的key都为字符串,能做到高效查询和插入,时间复杂度为O(k),k为字符串长度,缺点是如果大量字符串没有共同前缀时很耗内存。2、前缀树的作用1. 前缀匹配2.原创 2020-12-15 10:43:39 · 192 阅读 · 0 评论 -
Go源码解析:validator.v8
When a field that is a nested struct is encountered, and contains this flag any validation on the nested struct will be run, but none of the nested struct fields will be validated. This is usefull if inside of you program you know the struct will be valid,原创 2020-12-14 15:07:29 · 1539 阅读 · 0 评论 -
Go官方包:container
参考地址:heap、list、ring目录Ⅰ、list.go1、数据结构作用2、参数说明①、Element②、List3、方法说明①、Init②、常规方法③、insert操作④、remove操作⑤、move操作4、测试示例Ⅱ、ring.go1、数据结构作用2、参数说明3、方法说明①、基础方法②、Move③、Link④、Unlink⑤、Do4、测试示例Ⅲ、heap.go1、数据结构作用2、参数说明3、.原创 2020-12-07 14:58:48 · 969 阅读 · 0 评论 -
Go:自定义比特位工具
注:本文实现自定义工具类,参考Go 的位操作测试代码是瞎写的...目录1、通过 & 实现Ⅰ.判断奇偶数Ⅱ.判断二进制表示某一位是否为1Ⅲ.判断二进制表示是否只有一个12、通过 | 实现Ⅰ.设置二进制表示的某一位为13、通过 ^ 实现Ⅰ.判断两个数的正负符号是否相同4、通过 &^ 实现Ⅰ.设置二进制表示的某一位为05、测试代码6.具体作用说明1、通过 & 实现Ⅰ.判断奇偶数奇数的二进制表示的最后一位是1,而偶数的二..原创 2020-12-03 17:46:51 · 326 阅读 · 0 评论 -
Go-Linq包方法分析
注:以下所有的方法来自于https://github.com/ahmetb/go-linq,只对对应方法进行用法分析.具体的使用示例可以参考https://godoc.org/github.com/ahmetb/go-linq#目录前置:结构体与数据构造方法方法使用解析1、Aggregate:自定义聚合操作2、All:判断是否所有元素都满足条件3、Any:判断是否有任意个元素满足条件4、Where:根据条件查询对应所有元素5、计算类型的函数6、组合两个数组,...原创 2020-12-01 16:33:27 · 3031 阅读 · 0 评论 -
Go官方包 - strings包
注:所有的Strings包方法,可参考:https://godoc.org/strings#,这边有一个小技巧,就是把鼠标移到对应的go包方法上面,然后按下快捷键 Shift + F1 即可跳转到对应的文档链接1、builder包1、功能说明// A Builder is used to efficiently build a string using Write methods.// It minimizes memory copying. The zero value is re..原创 2020-11-30 17:22:25 · 437 阅读 · 0 评论 -
Go数据库操作:5、xorm包-事件
参考:事件文章目录1、Struct特定方法1、插入到数据库前、后2、更新到数据库前、后3、从数据库删除前、后4、查询出来,设置到结构体前、后2、执行过程中实现1、临时执行某个方法之前执行2、临时执行某个方法之后执行xorm是支持两种实现方式的在Struct中的特定方法来作为事件的方法(也就是说通过继实现相应接口的方式来实现)在执行语句的过程中执行事件(也就是说在engine或者sessi...原创 2020-04-02 17:25:51 · 729 阅读 · 0 评论 -
Go数据库操作:4、xorm包-增删改查
参考:Xorm文章目录1、插入数据1、Orm方式1、同一个表插入数据2、不同的表插入数据3、注意2、代码方式2、查询\统计数据3、更新数据4、删除数据1、插入数据 1、Orm方式 这边的前提条件是程序的实体和数据库表结构映射已经达成。 1、同一个表插入数据 这边User是一个已经映射好的实体,简化一下这个过程。直接上代码: //新增一条...原创 2020-04-02 13:51:04 · 2907 阅读 · 0 评论 -
Go数据库操作:3、SqlMap及SqlTemplate模板
文章目录1、注册sqlMap(json方式)1、初始化引擎2、注册json文件的sqlMap3、Json文件配置2、SqlTemplate3、文件更新监控功能4、模板加密存储及解析5、手动管理1、新增2、删除3、修改4、查询 注意: 这边看的包是xormplus下面的包,如果是原来的xorm包,是不支持sqlMap或者tem...原创 2020-04-01 17:47:45 · 1114 阅读 · 0 评论 -
Go数据库操作:2、xorm包-表结构操作
参考:表结构操作文章目录1、获取数据库信息1、DBMetas():获取表结构信息2、TableInfo(Bean):获取对应表结构信息2、获取表信息1、CreateTables(beans):根据结构体创建表2、IsTableEmpty():判断表中是否有数据3、IsTableExist():判断表是否存在4、DropTables(beans):批量删除表3、索引1、CreateIndexes(...原创 2020-03-31 10:32:15 · 1680 阅读 · 0 评论 -
Go数据库操作:1、xorm包-基础配置与映射
参考:xorm操作指南,这边有一些配置或者其他的数据库配置(主要是mysql)会省去,具体查看该文档。文章目录1、特性2、安装3、Orm引擎(包含配置)1、创建(mysql为例)2、ping操作3、操作日志1、配置输出sql2、配置打印日志级别3、配置输出到文件4、连接池操作4、表-结构体 映射1、映射规则配置1-名称映射规则2-设置方法3-混合使用和自定义4-对应的类型映射2、自定义映射和映射...原创 2020-03-30 18:35:19 · 2114 阅读 · 0 评论 -
Go官方包:encodinng常用方法
文章目录1、json1、Marshal:对象转换成json串1、json1、Marshal:对象转换成json串规则:在tag里面用json:"name"可以定义别名,这个正常是为了保证外部进来的小写,而对外声明的首字母大写(非私有)tag中有json:"-"的数据不会被转出,如果带别名的-是会被正常转出的,比如说:json:"value,-"结构体的私有属性...原创 2020-03-27 17:51:46 · 212 阅读 · 0 评论 -
Go:性能分析工具 - pprof
参考:【windows】Graphviz的下载安装,配置环境和简单实例参考:9.1 Go 大杀器之性能剖析 PProf文章目录1、Graphviz下载安装1、msi包下载2、安装3、环境变量配置4、验证安装成功2、简单例子运行1、书写我们的demo2、启动代码3、web查看4、终端交互5、可视界面1、Graphviz下载安装Graphviz是用来查看图形化界面的性能结果分析的,如果不需要的...原创 2020-03-16 10:53:46 · 899 阅读 · 0 评论 -
Go:官方包 - net 常用方法
参考:Go语言中文网文章目录1、net包1、lookUp地址信息查找相关2、地址操作3、错误说明4、连接(以Tcp为例子)2、net/http包1、连接、监听2、管理HTTP客户端的头域、重定向策略和其他设置3、管理代理、TLS配置、keep-alive、压缩和其他设置4、完整例子1、net包1、lookUp地址信息查找相关 //InterfaceAddrs 返回该系统的网络接口的地址列表...原创 2020-03-13 17:08:43 · 1009 阅读 · 0 评论 -
Go:官方库 - Time常用方法
文章目录1、时间初始化1、 本地时区初始化2、自定义时区初始化2、时间运算1、在某个时间之前2、在某个时间之后3、时间相等4、加时间5、减时间3、转换1、time.Time 转 int64(时间戳)2、int64(时间戳)转time.Time3、string 转time.Time4、格式化1、格式化写法2、格式化常用格式5、定时器1、源码2、示例1、时间初始化1、 本地时区初始化 time....原创 2020-03-13 11:59:24 · 1456 阅读 · 0 评论 -
Go:反射
参考:《Go语言圣经》参考:深度解密Go语言之反射,实际这篇文章主要还是基于下面这个资料整理的,圣经没有讲到底层实现原理。文章目录1、什么是反射2、使用反射和不使用的理由3、反射的实现原理1、types 和 interface2、接口变量声明赋值前后4、反射的基本函数1、TypeOf2、ValueOf()5、Type、Interface、Value互相转换6、反射的实际运用1、json 序列化...原创 2020-03-13 10:51:04 · 427 阅读 · 0 评论 -
Go:官方库 - Sync
参考:Go语言中文网参考:浅谈 Golang sync 包的相关使用方法 老实说,看了go提供的这些锁的包,和java中的concurrent包其实很多作用是类似的,所以说其实很多语言的基础架构都是类似的,理解到源码层次再回头去学习其他的语言就不会那么难了。文章目录壹、Mutex - 互斥锁1、方法说明1、结构...原创 2020-03-12 16:43:09 · 366 阅读 · 0 评论 -
Go:官方库 -Context
参考:Golang中 Context包深入浅出参考:golang中Context的使用场景文章目录1、作用说明2、方法说明1、Context接口1、Dealine2、Done3、Err4、Value2、Background3、TODO4、WithCancel5、WithDeadline6、WithTimeout7、WithValue3、使用示例1、控制一组gogroutine2、超时请求3、H...原创 2020-03-12 12:00:21 · 552 阅读 · 0 评论 -
Go:标准库:sort排序
参考:知乎参考:Go语言标准库参考:Go标准库文章目录1、接口说明2、方法说明1、Sort - 排序2、Reverse - 逆序3、IsSorted - 返回是否排序3、内置结构实现1、IntSlice2、Float64Slice3、StringSlice4、函数增强1、sort.Slice - 自定义排序规则2、sort.SliceStable - 稳定排序3、sort.SliceIsSo...原创 2020-03-11 18:20:10 · 1348 阅读 · 0 评论 -
Go:标准库-文本
参考:知乎参考:Go语言标准库参考:Go标准库文章目录1、文本1、strings — 字符串操作1、字符串比较2、是否存在某个字符3、子串出现次数4、字符串分割为[]string5、字符串是否有某个前缀(后缀)1、文本1、strings — 字符串操作1、字符串比较字符串大小比较: /* Compare 函数,用于比较两个字符串的大小,如果两个字符串相等,返回为 0。 ...原创 2020-03-10 18:33:13 · 346 阅读 · 0 评论 -
Go:标准库-Container包
参考:知乎参考:Go语言标准库参考:Go标准库文章目录1、list - 双向链表1、初始化list2、返回元素,取值3、清空所有元素4、插入元素5、list长度6、移动元素7、移除元素2、heap - 堆1、结构说明2、初始化堆2、元素出堆(删除)3、压入元素4、删除第i个元素5、堆修复3、ring - 环1、初始化/创建2、获取前后元素3、移动4、连接与断开连接5、长度6、对环的每个元素执...原创 2020-03-11 16:41:19 · 1585 阅读 · 0 评论