- 博客(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
373
原创 elasticsearch geo使用
建立索引PUT /my_locations{ "mappings": { "properties": { "pin": { "properties": { "location": { "type": "geo_point" } } }
2020-07-07 17:07:52
648
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
1844
1
原创 go图片灰度化小工具2020-4-4全国哀悼
图片灰度化源码地址介绍这个小程序是2020-4-4清明节完成,可以将图片灰度化。操作十分简单。清明节全国哀悼。示例灰度化之前灰度化之后效果使用window下,其他系统下可以自行编译output/gray.exe -i 需要转换的图片名称 -o 输出的文件名)介绍这个小程序是2020-4-4清明节完成,可以将图片灰度化。操作十分简单。清明节全国哀悼。示例灰度...
2020-04-21 16:02:31
254
原创 插入排序
简介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
248
原创 字典树trie详解
trie简介在计算机科学中,trie,又称前缀树或字典树,是一种有序树,用于保存关联数组,其中的键通常是字符串。与二叉查找树不同,键不是直接保存在节点中,而是由节点在树中的位置决定。一个节点的所有子孙都有相同的前缀,也就是这个节点对应的字符串,而根节点对应空字符串。一般情况下,不是所有的节点都有对应的值,只有叶子节点和部分内部节点所对应的键才有相关的值。Trie这个术语来自于retrieva...
2020-04-02 18:41:50
1215
原创 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 <...
2019-12-13 11:48:11
333
原创 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
1797
原创 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
418
原创 go使用代理下载包
有时候下载包时会被墙,使用公共代理https://goproxy.ioexport GOPROXY=https://goproxy.io
2019-11-15 18:36:12
1117
原创 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
2566
4
原创 vscode调试mocha测试用例
launch.json{ // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { ...
2019-10-28 14:04:24
679
原创 go内置函数
名称说明close用于管道通信len、caplen 用于返回某个类型的长度或数量(字符串、数组、切片、map 和管道);cap 是容量的意思,用于返回某个类型的最大容量(只能用于切片和 map)new、makenew 和 make 均是用于分配内存:new 用于值类型和用户定义的类型,如自定义结构,make 用于内置引用类型(切片、map 和管道)。它们的用法...
2019-10-15 18:53:58
120
原创 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
618
原创 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
199
原创 go中的包
每个程序都由包(通常简称为 pkg)的概念组成,可以使用自身的包或者从其它包中导入内容。go中的包类似于php中的命名空间,每个 Go 文件都属于且仅属于一个包。一个包可以由许多以 .go 为扩展名的源文件组成,因此文件名和包名一般来说都是不相同的。必须在源文件中非注释的第一行指明这个文件属于哪个包,如:package main。package main表示一个可独立执行的程序,每个 Go ...
2019-10-10 14:54:15
299
原创 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
2499
原创 vscode配置go调试
launch.json{ // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { ...
2019-10-10 14:28:10
5162
原创 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
2725
原创 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
106
原创 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
1621
原创 插入排序
说明每次都将当前元素插入到左侧已经排序的数组中,使得插入之后左侧数组依然有序。当数组[3,4,1]排序时,先将[3]归为已排序的数组,[4,1]为未排序数组,遍历未排序数组,先取4和3比较,正序排序就不变,反序就交换两个值。…遍历完成,已排序数组越来越大,未排序数组越来越少。直到排序完成。时间复杂度插入排序的时间复杂度取决于数组的初始顺序,如果数组已经部分有序了,那么逆序较少,需要的交换次数...
2019-08-22 19:07:21
99
原创 你不知道的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
733
原创 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
5572
原创 冒泡排序详解
简介一组数字,按从小到大排序,从左到右不断交换相邻的元素(如果右边小于左边的话),一次循环过后,最大的值在最右边了。演示如下图示例// typescript 示例/** * 冒泡排序 * @param {number[]} nums -需要排序的数组 * @return {number[]} -返回排序后的数组 */function bubble(nums: number[]...
2019-08-14 15:13:04
356
原创 二分法查找
// 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
181
原创 计算机网络体系
计算机网络体系结构1. 五层协议应用层 :为特定应用程序提供数据传输服务,例如 HTTP、DNS 等协议。数据单位为报文。传输层 :为进程提供通用数据传输服务。由于应用层协议很多,定义通用的传输层协议就可以支持不断增多的应用层协议。运输层包括两种协议:传输控制协议 TCP,提供面向连接、可靠的数据传输服务,数据单位为报文段;用户数据报协议 UDP,提供无连接、尽最大努力的数据传输服...
2019-08-13 17:56:41
203
原创 关于最近的一道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
156
原创 微信小程序工具库
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
1441
原创 git log常用选项
选项说明-p按补丁格式显示每个更新之间的差异。–stat显示每次更新的文件修改统计信息。–shortstat只显示 --stat 中最后的行数修改添加移除统计。–name-only仅在提交信息后显示已修改的文件清单。–name-status显示新增、修改、删除的文件清单。–abbrev-commit仅显示 SHA-1 的前几个字符,而非...
2019-07-15 12:01:41
732
原创 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
3318
原创 typescript中的类型别名
关键词type// 类型别名用法 自定义自己类型 type myType = { name: string, age: number,}
2019-04-19 14:36:41
2038
转载 SQL语句性能优化策略
本文会提到52条SQL语句性能优化策略。1、对查询进行优化,应尽量避免全表扫描,首先应考虑在where及order by涉及的列上建立索引。2、应尽量避免在where子句中对字段进行null值判断,创建表时NULL是默认值,但大多数时候应该使用NOT NULL,或者使用一个特殊的值,如0,-1作为默认值。3、应尽量避免在where子句中使用!=或<>操作符,MySQL只有对以下操...
2019-03-24 22:24:51
311
原创 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
593
原创 码云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
534
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人