- 博客(6)
- 资源 (1)
- 收藏
- 关注
原创 gonic之中间件实现-异常恢复
最近公司要求更新自研框架,就顺便看了一下gonic的框架实现,代码不多,感觉主要有两个特点,第一个httprouter来实现路由,第二个就是异常恢复,更深入看后原来是中间件,httprouter就不多说了,现记录一下中间件的实现,以便后面需要。 简单的运行一下框架 engine := gin.Default() engine.GET("/index", foo) engine.Run(":8...
2018-05-23 16:58:43 557
原创 golang之slice和map比较
最近在看golang的时候发现golang的map类型的元素比较特殊,也就是不能够取地址。因为map实际上是一张hash表,当map元素数量增加的时候,当前分配的内存不足以存放新的数据,就会重新分配更大的内存空间,并把原有的数据迁移过来。因此以前的地址保存的就不是当前map中的元素了。 思考了一下,slice应该也是类似的但是slice是允许取地址操作的,因此做了一个小验证: s1 := m...
2018-02-09 16:51:39 1759
原创 shell命令分类
linux的shell命令总共分为5中,alias,function,file,builtin,keyword。 alias就是别名,function就是自己创建的shell函数,file就是path路径里的一些二进制或者其他sh文件等挂在硬盘上的文件,keyword就是shell的关键字。 可以通过type -t command来查看,另外如果一个命令是file的话,可以通过type -p ...
2018-02-04 19:49:01 950
原创 linux脚本运行之选婿
首先进入到~/shell目录下,编写一个非常简单的脚本 $cd ~/shell $vi echo.sh #!/bin/bash echo "hello" 赋予脚本可执行权限并运行该脚本 $chmod +x echo.sh $./echo.sh hello 脚本非常简单,但是执行过程还是要理清楚。我们都知道linux的程序都是静态编译的但脚本如php脚本,shell...
2018-02-04 19:04:17 178
原创 设计模式之golang实现策略
package strategy type cashCal interface { cashCal(float64) float64 } type deal struct{} type normalDeal struct { deal } func (nd *normalDeal) cashCal(Price float64) float64 { return Price } t...
2018-01-30 16:55:12 318
原创 设计模式之golang实现-简单工厂模式
最近玩了一段时间的golang之后想着练练手,想着以前看过大话设计模式,就想着实现一下。 package easyfactory import "errors" type operation struct { } type cal interface { cal(int, int) (float64, error) } type operationAdd struct { o...
2018-01-30 10:09:43 596
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人