自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(260)
  • 收藏
  • 关注

原创 程序员笑话二十六

黑体的锯齿,宋体的沧桑,崩溃的避头尾集。美工永远纠结于网站程序员的粗犷,就像MAC永远不懂PC的忧伤。

2020-10-31 09:19:08 349 4

原创 gin获取路径中的参数

gin获取路径中的参数func main() { router := gin.Default() // 此规则能够匹配/user/john这种格式,但不能匹配/user/ 或 /user这种格式 router.GET("/user/:name", func(c *gin.Context) { name := c.Param("name") c.String(http.StatusOK, "Hello %s", name) }) // 但是,这个规则既能匹配/user/john/.

2020-10-31 09:18:56 2218 4

原创 gin自定义日志格式

gin自定义日志格式func main() { router := gin.New() // LoggerWithFormatter 中间件会将日志写入 gin.DefaultWriter // By default gin.DefaultWriter = os.Stdout router.Use(gin.LoggerWithFormatter(func(param gin.LogFormatterParams) string { // 你的自定义格式 return fmt.Sp.

2020-10-31 09:17:57 885 4

原创 gin写日志文件

gin写日志文件func main() { // 禁用控制台颜色 gin.DisableConsoleColor() // 创建记录日志的文件 f, _ := os.Create("gin.log") gin.DefaultWriter = io.MultiWriter(f) // 如果需要将日志同时写入文件和控制台,请使用以下代码 // gin.DefaultWriter = io.MultiWriter(f, os.Stdout) .

2020-10-31 09:17:26 1157 5

原创 gin使用中间件

gin使用中间件func main() { // 创建一个不包含中间件的路由器 r := gin.New() // 全局中间件 // 使用 Logger 中间件 r.Use(gin.Logger()) // 使用 Recovery 中间件 r.Use(gin.Recovery()) // 路由添加中间件,可以添加任意多个 r.GET("/benchmark", MyBenchLogger(), benchEndpoint) // 路由组中添加中间件 // authori.

2020-10-31 09:16:52 934 4

原创 gin无中间件启动

gin无中间件启动使用r := gin.New()代替// 默认启动方式,包含 Logger、Recovery 中间件r := gin.Default()

2020-10-31 09:16:09 262 4

原创 gin路由分组

gin路由分组func main() { router := gin.Default() // Simple group: v1 v1 := router.Group("/v1") { v1.POST("/login", loginEndpoint) v1.POST("/submit", submitEndpoint) v1.POST("/read", readEndpoint) } // Simple group: v2 v2 := router.Group("/v2.

2020-10-31 09:15:28 822 4

原创 gin上传文件

gin上传文件测试用例传文件的文件名可以由用户自定义,所以可能包含非法字符串,为了安全起见,应该由服务端统一文件名规则func main() { router := gin.Default() // 给表单限制上传大小 (默认 32 MiB) // router.MaxMultipartMemory = 8 << 20 // 8 MiB router.POST("/upload", func(c *gin.Context) { // 单文件 file, _ :=

2020-10-31 09:14:33 851 5

原创 golang桶排序

看一下golang桶排序代码,很简单。通过哈希表实现,先用哈希表存值,在通过哈希表的下标进行遍历,通过哈希表进行了排序package main import ( "fmt" "container/list") func bucketSort(theArray []int,num int){ var theSort [99]int for i:=0;i< len(theArray);i++{ if theSort[theArray[i]] !=0{ theSort[t.

2020-10-31 09:11:44 1451 16

原创 程序员笑话二十五

有一种崩溃叫密码输入有误;有一种惊慌叫做账号异地登陆;有一种感情叫隐身对其可见;有一种误会叫人机离线;有一种失落叫没有访问权限;有一种感情叫站点访问失败;有一种无奈叫bug无法复现...

2020-10-31 09:08:20 282 4

原创 mysql 创建定时任务

SET GLOBAL event_scheduler = 1;创建测试表,就是你需要操作的表create procedure user1_test() 创建一个存储过程操作对应的表创建定时事件:create eventuser1_event#这句话是设置时间多长时间执行一次(本设置是1S一次)on schedule every 1 secondon completion preserve disable#这个是指定要执行的代码块,在上面已经定义过了(即为3.创建的储存过程)do ..

2020-10-30 22:36:18 1166 5

原创 gin获取Get + Post 混合

Get+Post混合示例:POST/post?id=1234&page=1HTTP/1.1Content-Type:application/x-www-form-urlencodedname=manu&message=this_is_greatfuncmain(){router:=gin.Default()router.POST("/post",func(c*gin.Context){i...

2020-10-30 22:32:02 1413 5

原创 入手你从来没有接触过的行业项目

你刚入手你从来没有接触过的行业项目,如果现在让你做,你该如何。 对于一个陌生的行业和项目,你要去实现的这个功能。第一部需要了解这个行业,然后需要这个项目需求的尽量详细的文档。 不要不看文档挺别人给你讲,给你讲你也不一定能听懂。而且听别人讲,别人只是说一部分,你无法了解整个项目和需求。 你需要找对应方提供文档,要详细。不要让他一直给你讲,最后听不懂,先自己琢磨文档,然后再去听别人讲。 如果这个行业你相对熟悉了,项目也接触过一部分,这时可能就不...

2020-10-30 22:31:10 866 4

原创 程序员笑话二十四

程序员的四大理想:南极有套房,澳大利亚有群羊,全世界电脑死光光,孩儿有个娘。

2020-10-30 22:23:59 286 4

原创 gin获取post参数

获取Post参数funcmain(){router:=gin.Default()router.POST("/form_post",func(c*gin.Context){message:=c.PostForm("message")nick:=c.DefaultPostForm("nick","anonymous")//此方法可以设置默认值c....

2020-10-30 22:23:32 3647 4

原创 gin获取get参数

获取Get参数funcmain(){router:=gin.Default()//匹配的url格式:/welcome?firstname=Jane&lastname=Doerouter.GET("/welcome",func(c*gin.Context){firstname:=c.DefaultQuery("firstname","Guest")las...

2020-10-30 22:22:02 5068 4

原创 gin快速入门

运行这段代码并在浏览器中访问http://localhost:8080packagemainimport"github.com/gin-gonic/gin"funcmain(){r:=gin.Default()r.GET("/ping",func(c*gin.Context){c.JSON(200,gin.H{"message":"pong",...

2020-10-30 22:21:29 289 4

原创 gin使用 GET, POST, PUT, PATCH, DELETE, OPTIONS

运行这段代码并在浏览器中访问http://localhost:8080packagemainimport"github.com/gin-gonic/gin"funcmain(){r:=gin.Default()r.GET("/ping",func(c*gin.Context){c.JSON(200,gin.H{"message":"pong",...

2020-10-30 22:20:28 1522 4

原创 gin框架安装

要安装Gin包,首先需要安装Go并设置Go工作区1、下载并安装$goget-ugithub.com/gin-gonic/gin2、在代码中导入它import"github.com/gin-gonic/gin"使用包管理工具Govendor安装1、gogetgovendor(安装)$gogetgithub.com/kardianos/govendor2、创建项目文件夹并进入文件夹$mkdir-p$GOPATH/src/github.com/myusername/pr...

2020-10-30 22:18:55 1070 4

原创 程序员笑话二十三

上联:MYSQL明月三千里 下联:XHTML.信号他妈烂!

2020-10-30 22:12:39 255 4

原创 腾讯面试:比特位计数

题目描述给定一个非负整数num。对于0 ≤ i ≤ num范围中的每个数字i,计算其二进制数中的 1 的数目并将它们作为数组返回。示例 1:输入: 2输出: [0,1,1]示例 2:输入: 5输出: [0,1,1,2,1,2]方法一:Pop countpublic class Solution { public int[] countBits(int num) { int[] ans = new int[num + 1]; f..

2020-10-29 21:03:49 365 4

原创 腾讯面试:打家劫舍 III

题目:在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房屋将自动报警。计算在不触动警报的情况下,小偷一晚能够盗取的最高金额。示例 1:输入: [3,2,3,null,3,null,1] 3- / \ 2 3 \

2020-10-29 21:03:24 246 5

原创 程序员笑话十九

随机函数可以帮你实现家庭和谐: Talk(){:topword(1)=“恩!”;word(2)=“好的!”;word(3)=“然后呢?”;word(4)=“有道理”;i=random(4);sayword(i)gototop;}

2020-10-29 20:40:21 238 4

原创 程序员笑话十七

问:如何生成一个随机的字符串?答:让新手退出VIM

2020-10-29 20:40:09 293 4

原创 etcd分布式之分布式通知与协调

分布式之分布式通知与协调: 通过etcd进行低耦合的心跳检测 通过etcd完成系统调度 通过etcd完成工作汇报

2020-10-29 20:39:22 525 4

原创 etcd分布式之负载均衡

分布式之负载均衡: etcd本身分布式架构存储的信息访问支持负载均衡 利用etcd维护一个负载均衡节点表

2020-10-29 20:37:59 1248 4

原创 etcd分布式之消息发布与订阅

分布式之消息发布与订阅: 应用中用到的一些配置信息放到etcd上进行集中管理 索引的元信息和服务器集群机器的节点状态存放在etcd中 分布式日志收集系统 系统中信息需要动态自动获取与人工干预修改信息请求内容的情况...

2020-10-29 20:37:27 1589 4

原创 etcd分布式之服务发现需要

分布式之服务发现需要: 一个强一致性、高可用的服务存储目录 一种注册服务和监控服务健康状态的机制 一种查找和连接服务的机制

2020-10-29 20:36:18 312 4

原创 etcd应用场景

一个强一致性、高可用的服务存储目录。 一种注册服务和健康服务健康状况的机制。 一种查找和连接服务的机制。

2020-10-29 20:35:38 295 4

原创 etcd是啥

etcd是一个golang编写的分布式、高可用的一致性键值存储系统,etcd可以用于存储关键数据和实现分布式调度,etcd基于Raft协议,通过复制日志文件的方式来保证数据的强一致性。在etcd之前,常用的是基于Paxos协议的ZooKeeperetcd主要特性有: 简单:基于HTTP+JSON的API让你用curl就可以轻松使用。 安全:可选SSL客户认证机制。 快速:每个实例每秒支持一千次写操作。 可信:...

2020-10-29 20:34:59 1078 4

原创 如果某人不想理你

工作碰到问题先自己搜索,不要总是去问别人,别人没有义务帮你解决问题。 别人不想理你,就别一直发消息,或许那个问题你能自己处理。 有事别故意不想理,你也要注意观察别人的态度,自己做适当的调整。 做事不要心急,急反而影响你的思考,最后把事情做做糟糕,尽力就行。 该来的始终会来,保持冷静的头脑。...

2020-10-28 21:31:46 272 4

原创 golang获取当前正规时间

系统函数获取的时间不是人眼习惯看到的,还需要处理一下。package mainimport ( "fmt" "time")func main() { //test := time.Now().UTC() test := fmt.Sprintf("%s",time.Now().UTC()) fmt.Println(test[:19])}...

2020-10-28 21:24:41 624 4

原创 腾讯面试:前 K 个高频元素

题目:给定一个非空的整数数组,返回其中出现频率前k高的元素。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]class Solution {public: static bool cmp(pair<int, int>& m, pair<int, int>& n) { return m.secon...

2020-10-28 21:21:33 539 4

原创 golang中的strings.ToLower

golang中的字符串操作strings.ToLowerpackage mainimport ( "fmt" "strings")//golang字符串操作func main(){ s := "Hello world hello world" //str := "wo" //var s = []string{"11","22","33"} //将s中的所有字符修改为其小写格式。对于非ASC.

2020-10-28 21:21:05 2465 4

原创 程序员笑话十八

“我给你出个脑筋急转弯,你说达芬奇密码的上面是什么?”“这……太难了吧。不知道。”“笨!达芬奇密码的上面就是达芬奇帐号啊,那达芬奇密码的下面是什么?”“我……这……还是不知道。”“是达芬奇验证码”。...

2020-10-28 21:20:40 281 4

原创 根据身高重现队列

假设有打乱顺序的一群人站成一个队列。 每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个人前面且身高大于或等于h的人数。 编写一个算法来重建这个队列。注意:总人数少于1100人。示例输入:[[7,0], [4,4], [7,1], [5,0], [6,1], [5,2]]输出:[[5,0], [7,0], [5,2], [6,1], [4,4], [7,1]]class Solution {public: static bool cmp(const

2020-10-28 21:20:24 268 5

原创 程序员笑话十五

杀一个程序员不需要用枪,改三次需求就可以了。

2020-10-28 21:19:41 341 4

原创 golang中strings.ToUpper

golang中字符串操作strings.ToUpperpackage mainimport ( "fmt" "strings")//golang字符串操作func main(){ s := "hello world hello world" //str := "wo" //var s = []string{"11","22","33"} //将s中的所有字符修改为其大写格式。对于非ASCI.

2020-10-28 21:19:29 2722 4

原创 golang中的strings.HasPrefix

golang中的字符串操作strings.HasPrefixpackage mainimport ( "fmt" "strings")//golang字符串操作func main(){ s := "hello world hello world" //str := "wo" //var s = []string{"11","22","33"} //判断字符串s是否以prefix开头 .

2020-10-28 21:19:16 2703 4

原创 小米面试:字符串解码

题目:给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。示例:s = "3[a]2[bc]", 返回 "aaabcbc".s = "3

2020-10-28 21:17:59 308 4

空空如也

空空如也

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

TA关注的人

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