Golang反射应用-排序
一、反射Go基础教程可看 Go 系列教程 — 34. 反射 反射 Go 语言反射的实现原理 这里记下用的部分 1.1 reflect.Valuereflect.Value 可以表示一个任意类型的值 1234567891011121314151617181920package mainimport ( "fmt" "reflect")type User struct { Name string Age int}func main() { u := User{"张三", 56} v := reflect.ValueOf(u) fmt.Println(v)}/*output:{张三 56}*/ 1.2 reflect.Kind12345678910111213141516171819202122package mainimport ( "fmt" "reflect")type User struct ...
Arch配置i3wm
下面的某些软件可能在archlinuxcn源,注意先配置 安装ArchArch安装配置笔记 i31sudo pacman -S i3 注意i3-gaps会和i3-wm冲突,默认选择前者 配置文件位置 1~/.config/i3/config Display manager为了方便管理i3的启动,这里选择使用lightdm 作为启动管理器,安装完后重启即可 1sudo pacman -S lightdm lightdm-gtk-greeter 如果不需要的话也可以在tty输入startx启动 常用键位mod为win键或者alt键,在第一次进入桌面时会选择 打开终端:mod+enter 启动软件:mod+d 横向排列窗口:mod+h 纵向排列窗口:mod+v 将某个窗口全屏:mod+f 退出窗口:mod+shift+q 重启i3:mod+shift+r 打开工作区:mod+num 将当前窗口移动到某工作区:mod+shift+num 美化窗口配置文件末尾加入 12new_window pixel 0gaps inner 7 关闭picom popup_menu透明化复制一份配置文...
Golang-range中的坑
range遍历指针类型时注意事项 1234567891011121314151617181920212223242526package mainimport "fmt"func main() { arr := []int{1,2,3,4,5,6,7,8} odd := make([]int, 0, 5) for _, v := range arr{ if v % 2 == 1{ odd = append(odd, v) } } for _, v := range odd{ fmt.Println(v) }}/*output:1357*/ 1234567891011121314151617181920212223242526package mainimport "fmt"func main() { arr := []int{1,2,3,4,5,6,7,8} **odd := make([]*int,...
Golang生成十亿手机号码的探究
优化大量生成手机号码所使用的时间,取得较好的成果 配置既然是计算时间,那么肯定受电脑配置影响,这里贴下配置 win10 随机字符串生成前景以下省略计算时间的代码 12345678910func main() { before := time.Now() fmt.Println(before.Format("2006-01-02 15:04:05")) //... after := time.Now() fmt.Println(after.Format("2006-01-02 15:04:05")) fmt.Println(after.Sub(before))} 单纯跑十亿次循环12345678idx := 0for i := 0; i < 1000000000; i++{ idx++}//2020-09-14 15:01:22//2020-09-14 15:01:22//232.3817ms 十亿次随机获取手机号码1234567891011121314151617181920var ...
vue-admin-template第三方接入配合动态路由
vue-admin-template接入公司内部认证系统总结 主要逻辑 检测用户有没有登录 没有则跳转至http://xxx.com?url=<return_url> 授权后跳回return_url从url中获取token 解析token,保存用户数据 登录后的逻辑 跳转部分修改login页面里面我们只需要在框架中添加跳转页面以及跳转后处理页面即可,其他的框架已经使用路由帮我们处理 因为判断到没有登录会重定向到/login,所以我们可以修改/login对应的页面,让其直接跳转到认证页面 12345678// src/views/login/index.vue<script> export default { created() { window.location.href = 'http://passport.oa.com/modules/passport/signin.ashx?url=http://127.0.0.1:9527/#/ioa' } }</scr...
配置无显示器Linux环境远程使用
使用Windows内网远程Linux用于开发,让Linux专注于开发 安装Linux以及配置本次安装的是Arch,具体教程略过,可参考 Arch安装配置笔记 - GreenHatHGのBlog 安装xorg以及配置 安装xorg 1pacman -S xorg-server xorg-xinit 无显示器配置还需要安装 1pacman -S xf86-video-dummy 正常来说,新版xorg能够自动配置,但是对于无显示器方案,我们需要自己添加配置文件 12345678910111213141516171819202122/etc/X11/xorg.conf.d/10-headless.confSection "Monitor" Identifier "dummy_monitor" HorizSync 28.0-80.0 VertRefresh 48.0-75.0 Modeline "1920x1080" 172.80 1920 2040 2248 257...
二进制常见操作总结
常见二进制奇技淫巧 判断奇偶数123if(0 == (a & 1)) { //偶数} 判断二进制某个位是否为1把1左移N-1位,再进行and操作,如果大于0则代表该二进制位就为1 1x&(1<<5) 减去低位的最后一个1|将最右边的1变成01x = x&(x-1) O(1) 时间检测整数 n 是否是 2 的幂次1x&(x-1) == 0 //是 高低位交换给定一个 16 位的无符号整数,将其高 8 位与低 8 位进行交换,求出交换后的值 1a = (a >> 8) | (a << 8); 将最右边的0变成11x|(x+1) 在最后一位加一个11a << 1+1 最后一位取反1x ^ 1 把右数第k位变成11x | (1 << (k-1)) 把右数第k位变成01x & ~ (1 << (k-1)) 右数第k位取反1x ^ (1 << (k-1)) 取末k位1x & (1 << k-1) 取右数第k位1x >>...
git提交前校验方案
拦截commit事件,进行前置处理,校验通过则允许commit否则拒绝 介绍Git有一种在发生某些重要操作时触发自定义脚本的方法,称为Git Hooks。 这些hooks有两种:客户端和服务器端。 客户端hooks由诸如提交和合并之类的操作触发,而服务器hooks由网络操作(如接收推送的提交)运行 https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks 本次是客户端方案 方案介绍 目的:在git commit之前,对变更的文件进行检查,如果通过,则允许提交,否则拒绝提交 流程: git diff获取变更文件 执行检查脚本,将未通过文件列表保存到文本 从文本中获取所有出错文件 与变更文件列表比较 如果存在出错文件则拒绝commit,否则commit 遇到的问题git diff获取变更文件时,如果git中对应的编码没有设置对,获取的文件名可能是一串数字 这里有两个解决方案: 手动设置git编码正确,Windows和*nix两个系统操作方式不一样 添加编码设置到~/.gitconfig 这里采用第二种...
Caddy2使用在vue-history模式
Caddy2在vue-history模式下的配置 Caddy是什么Caddy是一个像Apache,Nginx的web服务器 在使用了web服务器的网站中,有30%+使用了Nginx,是市面上使用最广泛的web服务器之一 对于个人开发者来说,Caddy可能是你的较好选择,在市面上Caddy占有额会非常的微小,但是它方便的配置就足够了 Caddy2Caddy的最新版本是2.x, 功能强大了很多,但是资料/dome 都比较少,这里记录一下使用过程,下面是一些Caddy2的参考资料: https://caddyserver.com/v2 https://caddyserver.com/docs/caddyfile/directives https://github.com/caddyserver/caddy/wiki https://caddy.community/ 配置机器 安装Caddy2下载地址:https://github.com/caddyserver/caddy/releases 这里下的是https://github.com/caddyserver/caddy/relea...
ElasticSearch分词入门
ES分词知识小整理