学习OpenCV

前言 OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。 使用OpenCV可以方便的进行图像识别和图像处理,因此我打算学习学习。OpenCV在安装Python环境非常简单只需要下载opencv ... »

求解数独

前言 数独这个游戏很适合锻炼大脑思考,由于规则很简单,因此很适合我写代码拿来破解。所以就有了这篇随笔了。 首先我想通过自己的思考完成数独的求解,然后再到网上抄答案。提供一个【在线玩数独】的网站。 我的代码 代码讲解 我想通过自己的思路来求解,虽然网上肯定有非常巧妙高效的解法。因此我安装了HoDoKu ... »

进程单例运行,文件加锁

前言 很多时候我们都需要进程单例运行,当再次运行程序时检查到已有程序在运行可以做特别的操作,比如置顶已运行的程序,比如当前程序提示一下就退出。 最简单方案是打开进程创建一个文件,程序结束时删除文件,当第二个程序运行时判断该文件存在则认为已有程序运行。问题是程序异常退出没有删除那个文件就GG了。 还有 ... »

基于gin的golang web开发:模型绑定

在前两篇文章介绍路由的时候,我们了解到gin可用通过类似DefaultQuery或DefaultPostForm等方法获取到前端提交过来的参数。参数不多的情况下也很好用,但是想想看,如果接口有很多个参数的时候再用这种方法就要调用很多次获取参数的方法,本文将介绍一种新的接收参数的方法来解决这个问题:模 ... »

golang开发:http请求redirect的问题

这两天在开发项目的时候遇到了一个问题,请求了一个URL,它会302到另一个地址,本意上只是想检查这个URL是否会做3XX的redirect跳转,结果每次reqeust都会返回最后一跳的结果。后来就看了下源码,了解下请求跳转的机制 实现代码 看下实现的简单代码 func main() { client ... »

基于gin的golang web开发:路由

Gin是一个用Golang编写的HTTP网络框架。它的特点是类似于Martini的API,性能更好。在golang web开发领域是一个非常热门的web框架。 ... »

几种常用的排序代码

简单的代码 在我的笔记里面找到几种常用的排序代码,包括“冒泡排序、选择排序、二分排序、快速排序”。关于这些排序的原理,我之前是有专门研究的,网上也有很多教程。 package main import ( "fmt" "math/rand" "time" ) func main() { rand.Se ... »

golang拾遗:为什么我们需要泛型

从golang诞生起是否应该添加泛型支持就是一个热度未曾消减的议题。泛型的支持者们认为没有泛型的语言是不完整的,而泛型的反对者们则认为接口足以取代泛型,增加泛型只会徒增语言的复杂度。双方各执己见,争执不下,直到官方最终确定泛型是go2的发展路线中的重中之重。 今天我们就来看看为什么我们需要泛型,没有 ... »

慕课网go语言体系课抢先体验

慕课网go语言体系课抢先体验,课程分四个阶段: 《第一阶段go语言基础语法篇》,从go语言基础语法篇讲起,go语言环境集成,常用开发工具集成,常用数据类型讲解,流程控制,函数,结构体,方法,包,面向对象(封装,继承,多态,接口)。 《第二阶段go语言进阶篇》,go语言web编程相关的知识,包括htt... ... »

golang不想http自动处理重定向的解决方案

前言 有时候发送http请求不想让库自动帮忙处理重定向,库里面默认的是会把所有重定向都完成一遍,结果就是最后一个没有重定向的请求的结果。因此需要一种方案直接获取首次访问的结果,不走重定向。go的http库里面是使用如下代码检查重定向的,以前我傻傻的修改源码让下面这段代码直接返回,这样需要重新编译go ... »

golang拾遗:指针和接口

这是本系列的第一篇文章,golang拾遗主要是用来记录一些遗忘了的、平时从没注意过的golang相关知识。想做本系列的契机其实是因为疫情闲着在家无聊,网上冲浪的时候发现了zhuihu上的go语言爱好者周刊和Go 101,读之如醍醐灌顶,受益匪浅,于是本系列的文章就诞生了。拾遗主要是收集和golang ... »

golang开发:select多路选择

select 是 Golang 中的一个控制结构,语法上类似于switch 语句,只不过select是用于 goroutine 间通信的 ,每个 case 必须是一个通信操作,要么是发送要么是接收,select 会随机执行一个可运行的 case。如果没有 case 可运行,goroutine 将阻塞 ... »

Golang语言排序的几种方式

1.Ints,float64s,strings 使用以如函数实现基本类型 sort.Ints sort.Float64s sort.Strings s := []int{4, 2, 3, 1} sort.Ints(s) fmt.Println(s) // [1 2 3 4] 2.结构体自定义排序 使 ... »

go test 测试用例那些事(二) mock

关于go的单元测试,之前有写过一篇帖子go test测试用例那些事,但是没有说go官方的库mock,很有必要单独说一下这个库,和他的实现原理。 mock主要的功能是对接口的模拟,需要在写代码的时候定义抽象很多接口,有时为了能方便go test可能会多写一些冗余代码,但这些工作会让你的单元测试更灵活。 ... »

递归和回溯解决括号匹配问题

递归和回溯解决括号匹配问题 递归在之前的文章中有提及,有朋友在后台大呼不过瘾,刚好又刷到了一道可以用到递归的算法题,还是我们的老朋友:匹配有效括号,废话不多说,先上题目。 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例: 输入:n = 3 输出: ... »

搭建sonarqube分析golang代码

准备postgres 为什么不使用Mysql呢,因为从7.9就不支持了 docker启动postgres docker run -d --name sonar-postgres -e POSTGRES_PASSWORD=postgres -e PGDATA=/var/lib/postgr ... »

YoyoGo基于ASP.NET Core设计的Golang实现

YoyoGo YoyoGo 是一个用 Go 编写的简单,轻便,快速的 微服务框架,目前已实现了Web框架的能力,但是底层设计已支持。 Github https://github.com/yoyofx/yoyogo 特色 漂亮又快速的路由器 中间件支持 (handler func & custom m ... »