Go
文章平均质量分 91
落魄陶陶
这个作者很懒,什么都没留下…
展开
-
设计模式Go版-单例模式
----------------------------------singleton.go-------------------------------------------------package singletonimport ( "sync" "fmt")var ( once sync.Once instance *Singleton原创 2018-01-31 11:24:07 · 312 阅读 · 0 评论 -
Go实现二叉查找树
-----------------------------------------binarysearchtree.go----------------------------------------package binarysearchtreeimport ( "fmt" "container/list" "errors")var ( ErrComparato...原创 2018-02-24 15:35:58 · 385 阅读 · 0 评论 -
使用Go自带的container/ring.Ring模拟约瑟夫环
据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止。然而Josephus 和他的朋友并不想遵从。首先从一个人开始,越过k-2个人(因...原创 2018-02-23 16:01:46 · 260 阅读 · 0 评论 -
最大子序列和
------------------------------------maxsubsum.go------------------------------------------package maxsubsum// 问题描述:最大子序列和// 给定(有可能为负的)整数A1A2,...,An,求sum(Ai,...,Aj)最大值(如所有整数均为负数,则最大子序列和为0)// -2,11,...原创 2018-02-23 10:55:13 · 226 阅读 · 0 评论 -
动态规划-走楼梯
题目:有楼梯n阶,从下往上走,每一步只能跨1阶或者2阶,问总共有多少种不同走法比如,每次走1级台阶,一共走10步。我们可以简写成 1,1,1,1,1,1,1,1,1,1;再比如,每次走2级台阶,一共走5步。我们可以简写成 2,2,2,2,2。解答:----------------------------------------step.go-----------------------------...原创 2018-02-22 17:56:25 · 668 阅读 · 0 评论 -
Go两个任意类型的Slice比较实现
SliceEquals 用以比较两个Slice(基础数据类型,如[]int)内含值是否相等--------------------------------compare.go---------------------------------package compareimport "reflect"// SliceEquals 用以比较两个Slice(基础数据类型,如[]int)内含值是否...原创 2018-03-01 11:56:56 · 1615 阅读 · 1 评论 -
使用Go自带的container/heap实现最小时间差计算
container/heap简介container/heap提供了具有堆序性质的基本框架,只需要实现响应的接口,便可获得一个优先队列接口如下:type Interface interface { sort.Interface Push(x interface{}) // add x as element Len() Pop() interface{} // remove an...原创 2018-02-28 10:03:22 · 411 阅读 · 0 评论 -
Go实现资源池
--------------------------------------pool.go----------------------------------------------package poolimport ( "sync" "io" "errors" "log")var ( ErrSizeTooSmall = errors.New("池大小必须...原创 2018-02-08 13:59:26 · 357 阅读 · 0 评论 -
使用Docker部署Redis自动故障转移
问题背景说明在学习redis的自动故障转移过程中,发现所有redis进程都部署在宿主机中时可以实现failover,但是当将各个实例部署到docker中时,发现启动之后conf文件中识别到的地址并非宿主机地址,导致无法正常通信.今天简单阅读了一下redis文档的sentinel部分,发现有以下说明:Sentinel, Docker, NAT, and possible issues ...原创 2018-02-26 16:54:02 · 1555 阅读 · 0 评论 -
设计模式Go版-装饰器模式
----------------------------------decorator.go-------------------------------------------------package decoratorimport "fmt"//定义公用接口type Shower interface { Show()}//实现了公用接口的具体的类type Per原创 2018-01-29 10:49:21 · 1510 阅读 · 0 评论 -
设计模式Go版-策略模式
----------------strategy.go-----------------package strategyconst STRATEGY_300_RETURN_299 = "满300返299"const STRATEGY_REBATE_80 = "八折"type CashAcceptor interface { AcceptCash(float64) f原创 2018-01-26 16:31:12 · 505 阅读 · 0 评论 -
Go连接需要密码的Redis执行Lua脚本
本文主要包括以下要点:1.使用Go连接需要密码的Redis2.执行Lua脚本3.获取脚本执行结果代码如下package mainimport ( "github.com/gomodule/redigo/redis" "fmt")func main() { script := `local sum = ARGV[1]+ARGV[2]redis.call('setex', KEYS...原创 2018-04-04 14:52:44 · 3756 阅读 · 0 评论