自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 资源 (1)
  • 收藏
  • 关注

原创 Elasticsearch商品搜索

数据结构简化后的商品结构{ "name": "测试鼠标1", // 商品名称 "productId": 2, // 商品ID "status": 2, "add_time": "2015-11-12 00:00:00", "last_update_time": "2020-

2020-07-10 15:04:43 300

原创 elasticsearch geo使用

建立索引PUT /my_locations{ "mappings": { "properties": { "pin": { "properties": { "location": { "type": "geo_point" } } }

2020-07-07 17:07:52 583 1

原创 微信小程序生成二维码工具类附带完整示例和源码

小程序二维码生成源码地址使用复制src/qrcode.js到小程序目录下,直接引入即可使用方法说明// 通过RenderingContext绘制function draw(ctx: any, options: any):void// 根据id绘制 一般使用这个function drawById(id: any, options: any):void// 参数说明/** @param ctx canvas RenderingContext实例,通过canvas.getContext(

2020-06-08 14:30:09 1646 1

原创 tcp建立连接

2020-05-09 15:59:21 197

原创 go图片灰度化小工具2020-4-4全国哀悼

图片灰度化源码地址介绍这个小程序是2020-4-4清明节完成,可以将图片灰度化。操作十分简单。清明节全国哀悼。示例灰度化之前灰度化之后效果使用window下,其他系统下可以自行编译output/gray.exe -i 需要转换的图片名称 -o 输出的文件名)介绍这个小程序是2020-4-4清明节完成,可以将图片灰度化。操作十分简单。清明节全国哀悼。示例灰度...

2020-04-21 16:02:31 209

原创 插入排序

简介Insertion Sort 和打扑克牌时,从牌桌上逐一拿起扑克牌,在手上排序的过程相同。举例:Input: {5 2 4 6 1 3}。首先拿起第一张牌, 手上有 {5}。拿起第二张牌 2, 把 2 insert 到手上的牌 {5}, 得到 {2 5}。拿起第三张牌 4, 把 4 insert 到手上的牌 {2 5}, 得到 {2 4 5}。以此类推。算法从第一个元素开始...

2020-04-07 16:33:44 204

原创 字典树trie详解

trie简介在计算机科学中,trie,又称前缀树或字典树,是一种有序树,用于保存关联数组,其中的键通常是字符串。与二叉查找树不同,键不是直接保存在节点中,而是由节点在树中的位置决定。一个节点的所有子孙都有相同的前缀,也就是这个节点对应的字符串,而根节点对应空字符串。一般情况下,不是所有的节点都有对应的值,只有叶子节点和部分内部节点所对应的键才有相关的值。Trie这个术语来自于retrieva...

2020-04-02 18:41:50 1042

原创 go常用库

配置文件viper 配置文件的读取fsnotify 监听文件变化

2020-03-17 17:48:20 483

原创 用Go让蔡徐坤在我的命令行里打篮球!附示例gif和完整代码

github地址

2020-01-19 10:04:31 6163 1

原创 go channel方向

通道创建的时候都是双向的,但也可以分配有方向的通道变量,就像以下代码:var c = make(chan int) // 双向的分配通道的方向var c = make(chan int) // 双向的go source(c)go sink(c)func source(ch chan<- int){ for { ch <- 1 }}func sink(ch &lt...

2019-12-13 11:48:11 290

原创 vscode调试go命令行

这个小功能是打印一个文件内容,加上-n参数的打印行号。那么如何debug下面这样的一个文件呢?package mainimport ( "bufio" "flag" "fmt" "io" "os")func cat(r *bufio.Reader) { var line = 1 for { buf, err := r.ReadBytes('\n') if err ...

2019-12-04 11:12:28 1741

原创 redis缓存淘汰策略

2019-12-02 17:22:15 111

原创 go编译tools

go将一些工具拆分出来了,编译时不带这些工具,需要单独编译。下载源码git clone https://github.com/golang/tools编译godocgo build golang.org/x/tools/cmd/godoc可以构建二进制执行文件移动到bin目录下即可使用...

2019-11-15 18:56:38 364

原创 go使用代理下载包

有时候下载包时会被墙,使用公共代理https://goproxy.ioexport GOPROXY=https://goproxy.io

2019-11-15 18:36:12 1021

原创 go加载本地其他包

版本 v1.13先使用go mod初始化项目 go mod init 项目名修改go.mod加上replace替换pack包 后面是相对路径module importgo 1.13require ( github.com/gin-gonic/gin v1.4.0 // indirect pack v0.0.0 // indirect)replace pack v0.0....

2019-11-15 16:42:32 2508 4

原创 vscode调试mocha测试用例

launch.json{ // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { ...

2019-10-28 14:04:24 624

原创 go内置函数

名称说明close用于管道通信len、caplen 用于返回某个类型的长度或数量(字符串、数组、切片、map 和管道);cap 是容量的意思,用于返回某个类型的最大容量(只能用于切片和 map)new、makenew 和 make 均是用于分配内存:new 用于值类型和用户定义的类型,如自定义结构,make 用于内置引用类型(切片、map 和管道)。它们的用法...

2019-10-15 18:53:58 82

原创 go参数传递

package mainimport ( "fmt")type A intfunc main() { var a A = 12 fmt.Printf("%p", &a) //0xc0000120b8 fun1(&a) // 9 fmt.Printf("%d", a) //0xc0000120b8 fun2(a) ...

2019-10-12 19:10:49 563

原创 go和php中的switch对比

php<?php$k = 6;switch($k){ case 4: var_dump("was <= 4"); case 5: var_dump("was <= 5"); case 6: var_dump("was <= 6"); case 7: var_dump("was <= 7"); case 8: var_dump("wa...

2019-10-12 10:27:34 146

原创 go中的包

每个程序都由包(通常简称为 pkg)的概念组成,可以使用自身的包或者从其它包中导入内容。go中的包类似于php中的命名空间,每个 Go 文件都属于且仅属于一个包。一个包可以由许多以 .go 为扩展名的源文件组成,因此文件名和包名一般来说都是不相同的。必须在源文件中非注释的第一行指明这个文件属于哪个包,如:package main。package main表示一个可独立执行的程序,每个 Go ...

2019-10-10 14:54:15 244

原创 go test单元测试

go test是go内置的测试工具比如现在main.go里有一个方法func double(num int) int { return num * 2}编写测试文件main_test.gopackage mainimport ( "testing")func TestDouble(t *testing.T) { foo := 1 doubleFoo := double...

2019-10-10 14:45:38 2394

原创 vscode配置go调试

launch.json{ // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { ...

2019-10-10 14:28:10 5113

原创 vscode配置php调试加php内置服务器使用

查看php信息下载对应的xdebug根据php版本和vc版本和位数(x86对应32位)在这里这里下载对应的dll修改php.ini新增[XDebug]zend_extension=你下载的xdebug dll文件xdebug.remote_autostart=On xdebug.remote_enable = 1 xdebug.remote_port=9001 重新查看...

2019-09-23 18:13:00 2584

原创 React handling events关于js中this的一些思考

class Toggle extends React.Component { constructor(props) { super(props); this.state = {isToggleOn: true}; // This binding is necessary to make `this` work in the callback this.hand...

2019-09-17 18:02:22 75

原创 Type 'CrazyClass' provides no match for the signature 'new (): { hello: number; }'

今天看TypeScript Deep Dive的时候有个例子interface Crazy { new(): { hello: number; };}class CrazyClass implements Crazy { constructor() { return { hello: 123 }; }}// Becaus...

2019-09-10 18:12:55 1541

原创 插入排序

说明每次都将当前元素插入到左侧已经排序的数组中,使得插入之后左侧数组依然有序。当数组[3,4,1]排序时,先将[3]归为已排序的数组,[4,1]为未排序数组,遍历未排序数组,先取4和3比较,正序排序就不变,反序就交换两个值。…遍历完成,已排序数组越来越大,未排序数组越来越少。直到排序完成。时间复杂度插入排序的时间复杂度取决于数组的初始顺序,如果数组已经部分有序了,那么逆序较少,需要的交换次数...

2019-08-22 19:07:21 64

原创 你不知道的js

整数1 == 0.1 // true1 === 0.1 // trueJavaScript 内部,所有数字都是以64位浮点数形式储存,即使整数也是如此。所以,1与1.0是相同的,是同一个数。正0和负0+0 === -0 // true-0 === 0 // true+0 === 0 // true+0 和 -0的符号表示位不同,正负0的比较只有用ES6中...

2019-08-19 18:11:47 678

原创 SyntaxError: Invalid regular expression: invalid group specifier name Stack: (native code)

原因打包后的js不支持原生的双斜线格式的正则 //例子// 打包情况下会报错let regExp = /(?<!\d*\.\d*)(\d)(?=(\d{3})+(?!\d))/g;// 修改为下面的格式即可let regExp = new RegExp("(?<!\\d*\\.\\d*)(\\d)(?=(\\d{3})+(?!\\d))", 'g');...

2019-08-19 12:24:55 5434

原创 冒泡排序详解

简介一组数字,按从小到大排序,从左到右不断交换相邻的元素(如果右边小于左边的话),一次循环过后,最大的值在最右边了。演示如下图示例// typescript 示例/** * 冒泡排序 * @param {number[]} nums -需要排序的数组 * @return {number[]} -返回排序后的数组 */function bubble(nums: number[]...

2019-08-14 15:13:04 315

原创 二分法查找

// typescript版本的/** * 二分法查找 * @param {Array<number>} -nums 查找的数组 如[1,2,3,4] * @param {number} key -需要查找的值 如3 * @return {number} -返回下标或者-1(未找到) */function binarySearch(nums: Array&l...

2019-08-13 19:07:34 139

原创 计算机网络体系

计算机网络体系结构1. 五层协议应用层 :为特定应用程序提供数据传输服务,例如 HTTP、DNS 等协议。数据单位为报文。传输层 :为进程提供通用数据传输服务。由于应用层协议很多,定义通用的传输层协议就可以支持不断增多的应用层协议。运输层包括两种协议:传输控制协议 TCP,提供面向连接、可靠的数据传输服务,数据单位为报文段;用户数据报协议 UDP,提供无连接、尽最大努力的数据传输服...

2019-08-13 17:56:41 163

原创 关于最近的一道js题的思考

题目var a = {n: 1};var b = a;a.x = a = {n:2}console.log(a,a.x,b,b.x); 第一步: a和b变量的地址都指向 {n:1}第二步:在js中的 . 运算符比 = 高 所以生成了一个x属性第三步:a的地址修改为{n:2}的地址,原来的a.x即b.x修改为{n:2}// 所以输出a: {n:2}a.x: u...

2019-08-08 19:06:10 124

原创 在线shell

简介shell在线在线demohttps://shell.zhoudapao.cn演示

2019-08-02 17:02:09 543

原创 微信小程序工具库

xcxutils小程序工具库 仓库地址安装npm i xcxutils测试npm run test使用加载// 加载所有import * as utils from './node_modules/xcxutils/src/index'// 加载验证库import {verify} from './node_modules/xcxutils/src/index'/...

2019-07-29 18:14:32 1360

原创 git log常用选项

选项说明-p按补丁格式显示每个更新之间的差异。–stat显示每次更新的文件修改统计信息。–shortstat只显示 --stat 中最后的行数修改添加移除统计。–name-only仅在提交信息后显示已修改的文件清单。–name-status显示新增、修改、删除的文件清单。–abbrev-commit仅显示 SHA-1 的前几个字符,而非...

2019-07-15 12:01:41 663

原创 typescript中的队列

队列类class Queue { private data = []; push = item => this.data.push(item); pop = () => this.data.shift();}typescript版本的队列/*** pop的返回值当data为空时返回undefined* 使用了泛型约束*/class QueueT<T>...

2019-04-22 12:11:19 3193

原创 typescript中的类型别名

关键词type// 类型别名用法 自定义自己类型 type myType = { name: string, age: number,}

2019-04-19 14:36:41 1953

转载 SQL语句性能优化策略

本文会提到52条SQL语句性能优化策略。1、对查询进行优化,应尽量避免全表扫描,首先应考虑在where及order by涉及的列上建立索引。2、应尽量避免在where子句中对字段进行null值判断,创建表时NULL是默认值,但大多数时候应该使用NOT NULL,或者使用一个特殊的值,如0,-1作为默认值。3、应尽量避免在where子句中使用!=或<>操作符,MySQL只有对以下操...

2019-03-24 22:24:51 265

原创 tengine配置wss

问题今天在配置完https过后原有的ws不能使用了,需要升级为wss配置websocket服务端口为8898解决在tengine配置中443端口的server中加上配置 location /socket/ { proxy_pass http://yourdomain:8898/socket/; proxy_read_time...

2019-01-17 17:39:00 476

原创 码云webhook node版

const http = require('http');const passwd = '123456'; //见说明1const path = '/home/www/omange'; //配置需要拉取的路径const process = require('child_process');const port = 8888; // 服务器端口const server = h...

2018-12-14 15:34:55 460

CPUZZZZZSF

cpuzFDSAFSDAFDSAFDSAFASDFSDAF

2015-11-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除