- 博客(45)
- 资源 (7)
- 收藏
- 关注
原创 归并排序 Merge sort
文章目录算法编码GoPythonJavaScriptPHP结语算法归并排序(merge-sort),典型的分治策略(divide and conquer)。核心思路是将整体序列一分为二形成两个子序列,分别对子序列排序,再将两个有序子序列合并成一个有序序列。思路如图:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c0SId4YI-1586172341721)(...
2020-04-06 19:28:51
291
原创 MySQL8 的密码认证
文章目录1 WordPress (也就是PHP)中连接 MySQL82 MySQL8 支持的认证方式3 password() 函数1 WordPress (也就是PHP)中连接 MySQL8问题是安装 Wordpress 时,MySQL 服务器连接不上。检查了一下原因,原来服务器上使用的是 MySQL8 新版本服务器。估计原因就是密码的认证方式问题,因此更新用户密码,使用语句:ALTER U...
2019-05-13 22:45:22
808
原创 为什么是 Go 语言
文章目录1 前言2 语言定位,编码效率和执行效率的平衡点3 简约的异步并发处理方案,Goroutine 和 Channel4 简单的语法,快速的入门5 Google 后台 和 杀手级应用 Docker6 应用领域1 前言Go 语言是在 2009 年底开源的,如今已有10载。在2019年04月的 TIOBE 语言排名 (TIOBE Index for April 2019,https://www...
2019-04-15 17:40:12
401
原创 基于Redis实现消息队列的典型方案
文章目录1 概述2 基于List的 LPUSH+BRPOP 的实现3 PUB/SUB,订阅/发布模式4 基于SortedSet有序集合的实现5 基于 Stream 类型的实现6 其他实现1 概述消息队列,Message Queue,常用于解决并发系统中的资源一致性问题,提升峰值的处理能力,同时保证消息的顺序性、可恢复性、必送达性,对应用进行解耦,或者实现异步通讯等。市面上的 MQ应用有很多(例...
2019-03-27 22:03:16
812
原创 基于Redis的Stream类型的完美消息队列解决方案(全)
文章目录1 概述2 追加新消息,XADD,生产消息3 从消息队列中获取消息,XREAD,消费消息4 消息ID说明5 消费者组模式,consumer group6 Pending 等待列表7 消息转移8 坏消息问题,Dead Letter,死信问题9 信息监控,XINFO10 命令一览11 Stream数据结构,RadixTree,基数树12 相关产品1 概述Redis5.0带来了Stream类...
2019-03-26 23:20:38
4250
1
原创 JavaScript中的异步编程概述
文章目录1 什么是异步?2 为什么需要异步执行?3 JS的语法单线程4 回调函数5 Promise6 async-await7 Generator,生成器8 EventLoop 事件循环9 总结1 什么是异步?异步(async)是对应同步(sync)来说的,想理解异步就要先说同步。同步执行直观的理解就是代码顺序就是执行顺序,例如:console.log("A")console.log("B...
2019-03-23 13:43:18
901
1
原创 Redis 中的 GEO(地理信息)类型
文章目录1 概述2 GEOADD,添加成员的经纬度信息3 GEODIST,计算成员间距离4 GEORADIUS 基于经纬度坐标的范围查询5 GEORADIUSBYMEMBER 基于成员位置范围查询6 GEOPOS,获取成员经纬度7 GEOHASH 计算经纬度Hash1 概述Redis 3.2 中增加了对GEO类型的支持。GEO,Geographic,地理信息的缩写。该类型,就是元素的2维坐标,...
2019-03-23 13:32:28
981
原创 安装 Swoole
文章目录1 安装 PHP2 安装 Swoole 扩展关于Swoole扩展是标准的PHP扩展。以最典型的 linux 安装为例,进行说明。1 安装 PHPphp version 7.3.0安装步骤,以下脚本在 CentOS7 上执行通过:A. 安装PHP7.3yum install wget gcc libxml2-devel makecd ~wget http://cn2.p...
2019-01-03 22:08:39
122
原创 Xdebug 的使用
文章目录1 介绍2 安装下载加载扩展安装成功3 PHPStorm +4 单步调试5 调试原理6 var_dump()7 堆栈跟踪,stack traces8 分析器,profiler9 Code Coverage Analysis10 浏览器控制调试关于1 介绍Xdebug官网:https://xdebug.org/。Xdebug 是一个开源的PHP调试器。以PHP扩展的形式安装到PHP中。...
2019-01-03 22:07:34
1491
原创 PHP7.3新特性
文章目录1 发布时间2 更灵活的 `Heredoc` 和 `Nowdoc` 语法3 数组析构支持引用赋值4 list结构支持引用解析。5 instanceof 运算符支持字面量语法6 支持调用时参数的尾随逗号7 BC 数学函数8 LDAP 全支持9 多字节字符串函数更新10 FastCGI 进程管理11 Argon2id 算法支持12 CompileError 异常替代了一些编译错误13 性能提升...
2018-12-23 12:12:46
3163
原创 取模和取余
文章目录0 概述1 模数2 余数3 对比4 演示C++演示PHP演示Go演示Python演示JavaScript演示0 概述模数(Modulo Operation)和余数(Complementation)不是完全一致的算法。1 模数定义如下:商 = 被除数/除数,例如 -1.75 = 7 % -4将商向负无穷大取整,例如 floor(-1.75) = -2。(注意此步骤是模数与余数的...
2018-12-20 23:08:53
1946
原创 Go语言中操作MySQL
文章目录操作 MySQL1 概述2 MySQL 驱动安装2 打开数据库3 数据源名称4 查询操作查询多行查询单行NULL处理5 非查询操作6 预编译7 事务操作 MySQL1 概述Go 语言程序可以作为 MySQL 服务器的客户端完成 MySQL 数据库的操作。Go 语言中,使用 database/sql 包实现类 SQL 数据库的操作。sql 包是一个数据库抽象层,具体的数据库操作的实现...
2018-12-20 22:59:15
504
原创 Go语言的Markdown博客制作教程
广而告之Go的Markdown博客制作视频上线了视频百度网盘地址https://pan.baidu.com/s/13-iG4Op9iz7d0Rjd9LIXyg文档http://go.hellokang.net/blog-analysis.htmlgithubhttps://github.com/hanzkering/goBlogMarkdown联系作者&纠错可以关注微信 ...
2018-12-05 22:23:58
793
1
原创 Go语言解析YAML
文章目录1 概述2 安装 `go-yaml/yaml`3 解析 YAML4 构建 YAML1 概述YAML是"YAML Ain’t a Markup Language"(YAML不是一种置标语言)的递归缩写。YAML 以数据为中心,使用空白,缩进,分行组织数据,从而使得表示更加简洁易读。一个典型的 YAML 如下:title: 小韩说课category: gotag:- OOP- ...
2018-12-05 22:04:04
4509
1
原创 Go语言解析markdown
文章目录1 概述2 安装 Blackfriday3 解析 MarkDown 内容4 安全过滤安装使用1 概述Markdown 是一种轻量级的标记语言。设计的目的是通过简单、轻量级的方式来添加格式,而不需要使用 HTML。相关文档如下:Markdown语法文档Markdown语法文档(官方)Markdown语法文档(翻译)2 安装 BlackfridayGo 语言中解析 Ma...
2018-12-05 22:03:02
2025
原创 Go语言中使模板引擎的语法
文章目录1 模板界定符2 数据3 调用函数4 管道5 条件分支6 循环遍历7 解析子模板8 定义模板变量9 注释1 模板界定符{{ }}是默认的模板界定符。用于在 HTML 模板文件中界定模板语法。例如:Hello, {{ .User }}<br>你熟悉的技术:<ul>{{ range .List }} <li>{{.}}&am
2018-11-14 10:00:47
1183
原创 Go语言中使用模板引擎
文章目录1 概述2 解析模板3 应用数据并发送响应1 概述处理响应主体时,最常见的方式就是发送处理好的 HTML 代码,由于需要将数据嵌入到 HTML 中,那么模板引擎(template engine)就是最好的选择。Go语言中,提供了 html/template 包,实现模板引擎的相关功能。快速使用示例:main.gopackage mainimport ( "html/...
2018-11-14 09:59:43
1564
原创 Go中处理响应
文章目录1 概述2 响应主体3 响应头信息4 操作cookie5 重定向6 响应 4041 概述Go 语言 HTTP 服务器,在启动监听并处理接收的请求时,会将实现了 http.ResponseWriter 接口的 http.Response 对象作为第一个参数传递到请求处理器,示例代码:func main() { // 设置 路由 http.HandleFunc("/", Inde...
2018-11-12 23:01:01
425
原创 Go中处理请求
文章目录1 概述2 `http.Request` 结构3 请求方式4 请求参数5 请求头6 请求 URL1 概述Go 语言 HTTP 服务器,在启动监听并处理接收的请求时,会将请求相关数据封装成 http.Request 对象,同时作为参数传递到请求处理器中。处理器函数的第二个参数就是对 http.Request 对象的一个引用,示例代码为:func main() { // 设置 路由...
2018-11-11 17:05:03
297
原创 Go语言中处理 HTTP 服务器
文章目录1 概述2 http.Server 类型3 http.DefaultServeMux 默认路由对象4 处理器1 概述包 net/http 提供了HTTP服务器端和客户端的实现。本文说明关于服务器端的部分。快速开始:package mainimport ( "log" "net/http")func main() { // 设置 路由 http.Handle...
2018-11-11 12:07:02
318
原创 Go语言正则引擎支持的字符类
本文为正则支持的字符类附录列表。具体的Go支持的正则规则请参考:Go语言支持的正则语法perl 类符号意义\d数字 (相当于 [0-9])\D非数字 (相当于 [^0-9])\s空白 (相当于 [\t\n\f\r ])\S非空白 (相当于[^\t\n\f\r ])\w单词字符 (相当于 [0-9A-Za-z_])\W非单词字符 (...
2018-11-08 11:37:06
444
原创 Go语言支持的正则语法
1 字符语法说明.任意字符,在单行模式(s标志)下,也可以匹配换行[xyz]字符类[^xyz]否定字符类\dPerl 字符类\D否定 Perl 字符类[[:alpha:]]ASCII 字符类[[:^alpha:]]否定 ASCII 字符类\pNUnicode 字符类 (one-letter name)\p{Gre...
2018-11-08 11:21:50
336
原创 Go语言中正则表达式的处理
文章目录1 概述2 获取正则对象3 匹配检测4 查找5 查找匹配位置6 查找匹配子模式7 替换8 分割1 概述正则表达式,又称规则表达式,Regular Expression,在代码中常简写为 regex、regexp 或 RE。正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑...
2018-11-08 11:19:14
480
原创 Go语言中的模板引擎
文章目录1 概述2 基本使用3 总结1 概述模板引擎,便于处理HTML与数据间的整合。使用包 html/template 实现。2 基本使用示例如下:import "html/template"func main() {}3 总结欢迎关注: 小韩说课...
2018-11-07 09:52:58
572
原创 Go语言反射之反射调用
文章目录1 概述2 创建实例3 调用函数4 调用方法1 概述利用反射,不仅可以获取信息,还可以创建实例,执行函数和方法。就是反射代理执行。2 创建实例创建实例的前提是具有 reflect.Type 对象,基于此创建实例。使用 reflect.TypeOf() 函数,可以获取得到某类型的 reflect.Type 对象,演示如下:typeStu := reflect.TypeOf(Stu...
2018-11-05 12:44:46
489
原创 Go语言反射之值反射
文章目录1 概述2 值反射对象3 修改值4 修改结构体字段值1 概述反射不仅可以获取值的类型信息,还可操作变量的值。使用 reflect.Value 类型操作变量的值。2 值反射对象reflect.ValueOf() 方法可以获取一个值的反射对象,之后可以获取值的相关信息,或者获取这个值。示例: v := make([]int, 10) valueV := reflect.Val...
2018-11-05 12:40:32
208
原创 Go语言反射之类型反射
文章目录1 概述2 获取类型3 获取基础类型(类别)4 指针引用的元素类型5 结构体信息6 结构体标签1 概述类似于 Java,Go 语言也支持反射。支持反射的语言可以在运行时对程序进行访问和修改。反射的原理是在程序编译期将反射信息(如类型信息、结构体信息等)整合到程序中,并给提供给程序访问反射信息的操作接口,这样在程序运行期间就可以获取该反射信息,甚至支持修改操作。Go 语言使用 refl...
2018-11-05 12:39:38
675
原创 Go语言中结构体的使用-第2部分OOP
1 概述结构体的基本语法请参见:Go语言中结构体的使用-第1部分结构体。结构体除了是一个复合数据之外,还用来做面向对象编程。Go 语言使用结构体和结构体成员来描述真实世界的实体和实体对应的各种属性。也就意味着结构体类型可以类比为其他语言中的“类class”, 而结构体数据可以类比为其他语言中的 “对象”。本文就说说结构体中,面向对象的部分。2 构造工厂函数在面向对象编程中,实例化对象时...
2018-11-01 16:04:38
428
原创 Go语言中结构体的使用-第1部分结构体
1 概述结构体是由成员构成的复合类型。Go 语言使用结构体和结构体成员来描述真实世界的实体和实体对应的各种属性。结构体成员,也可称之为成员变量,字段,属性。属性要满足唯一性。结构体的概念在软件工程上旧的术语叫 ADT(抽象数据类型:Abstract Data Type)数据层面,结构体是自定义数据类型,可以理解成是由一系列具有相同或不同类型的数据构成的数据集合。因此结构体也被称之为抽象数据...
2018-11-01 16:03:52
633
原创 Go语言中映射表map的使用
1 概述Go语言中的键值对(key->value)集合,称之为映射map。映射map是变长类型,定义时不需要指定长度。映射map是无序的,遍历是的顺序不可期,原因是底层由hash表实现。逻辑结构表示为:2 创建语法var m = map[key_type]value_type{key1: value1, key2: value2}var m = make(map[key_type...
2018-10-31 12:33:08
211
原创 Go语言中切片的使用
文章目录1 概述2 创建切片3 for-range 遍历4 append() 扩容5 copy() 拷贝切片6 常用操作通过索引 i 删除切片中某个元素删除索引 i-j 的元素在索引 i 的位置插入元素在 s1 索引 i 的位置插入切片 s2 的所有元素栈操作模拟队列操作模拟1 概述其中切片是基于数据中连续片段的引用,是一个引用类型。与数组不同的是,切片的长度可以在运行时修改。使用上可以将切片...
2018-10-30 11:32:25
2972
原创 Go语言中数组的使用
文章目录1 概述2 定义语法3 []索引访问4 数组是值类型5 len() 长度6 数组遍历7 多维数组8 数组传参9 ==,!= 数组间的比较1 概述数组,切片,map是容器数据类型。都是可以存储多个值的符合类型。其中数组是相同类型的一组已编号且长度固定的数据项序列,不用类型和长度是不同的数据类型,例如[5]int, [3]int, [5]byte是不同的类型。2 定义语法// 定义...
2018-10-28 21:52:15
775
原创 Go语言中其他数据与字符串类型的转换
文章目录1 概述2 与切片的转换3 strconv 包strconv.Atoi(s string) (int, error)strconv.Itoa(i int) stringstrconv.ParseFloat(s string, bitSize int) (float64, error)strconv.ParseInt(s string, base int, bitSize int) (i i...
2018-10-27 19:44:58
311
原创 Go语言中多字节字符的处理
文章目录1 概述2 `UTF-8` 和 `Unicode` 的关系3 `Unicode` 包Is(rangeTab \*RangeTable, r rune) boolIn(r rune, ranges ...\*RangeTable) boolIsOneOf(ranges []\*RangeTable, r rune) boolIsSpace(r rune) boolIsDigit(r rune...
2018-10-26 23:32:27
416
原创 Go语言中的字符串处理
文章目录1 概述2 常规操作[]索引访问unicode/utf8 包len(),字符串占用的字节数+,字符串连接"==, >, <strings.Compare(a, b string) intstrings.Contains(s, substr string) boolstrings.ContainsAny(s, chars string) boolstrings.ContainsR...
2018-10-25 21:55:20
992
1
原创 Go语言的包管理
文章目录1 概述2 main包3 包定义,package4 导入包,import4 GOPATH环境变量5 init() 包初始化1 概述Go 语言的源码复用建立在包(package)基础之上。包通过 package, import, GOPATH 操作完成。2 main包Go 语言的入口 main() 函数所在的包(package)叫 main,main 包想要引用别的代码,需要impo...
2018-10-25 00:35:06
138
原创 Go语言中的函数
文章目录1 概述2 定义3 参数4 返回值5 函数变量6 函数参数7 匿名函数8 闭包9 函数调用示意图10 递归调用1 概述函数,function,独立的,用于实现具体功能的代码块。主要目的,是代码的重用(重复使用),更好的管理代码,模块化开发。函数通常使用参数和返回值,与调用者交互数据。参数给函数传递数据,返回值,函数将处理好的数据传递给调用者。Go语言中函数被称为一等公民(first...
2018-10-23 23:15:35
622
原创 Go语言中的流程控制
文章目录1 概述2 条件分支 if3 状态分支 switch3.1 基础3.2 fallthrough,向下穿越3.3 条件型 switch4 循环for4.1 基本4.2 省略语句4.3 break4.4 continue4.5 嵌套循环5 goto6 延迟执行defer1 概述Go语言提供了条件分支 if,状态分支 switch,循环 for,跳转 goto,延迟执行 defer,这些流程...
2018-10-22 22:57:35
233
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人