golang
qinzhao168
梦想 在远处 呐喊
展开
-
golang之TopN算法
相信大家已经了解了TOPN算法的原理了 不多说 直接上代码,其中[]leveldb.UserExp 看需求来定义//GetTopN 1.经验值一样的要不要算一个//h[root] parentNode h[root/2] childNode h[root*2+1] h[root*2+2]func GetTopN(n int, a []leveldb.UserExp) ([]leveldb.U原创 2017-07-01 00:35:16 · 1760 阅读 · 0 评论 -
My favorite #golang retry function
func retry(attempts int, sleep time.Duration, callback func() error) (err error) { for i := 0; ; i++ { err = callback() if err == nil { return } if i >= (原创 2017-10-24 12:26:20 · 1380 阅读 · 1 评论 -
go-restful之hello world
上代码package mainimport ( "github.com/emicklei/go-restful" "io" "log" "net/http")// This example shows the minimal code needed to get a restful.WebService working.//// GET http://local原创 2017-11-28 16:05:08 · 482 阅读 · 0 评论 -
golang time
一些心德体会time.Now().Sub(job.Status.StartTime.Time) >= 4*time.Hour原创 2017-11-25 16:39:52 · 373 阅读 · 0 评论 -
golang生成ssh 密钥方法
不多说 直接上代码/* * Genarate rsa keys. */package secureimport ( "crypto/rsa" "crypto/rand" "crypto/x509" "encoding/pem" "golang.org/x/crypto/ssh" //"strings" //"github.com/gola原创 2017-11-25 16:44:04 · 3584 阅读 · 0 评论 -
nsq简单安装以及测试
介绍NSQ 是实时的分布式消息处理平台,其设计的目的是用来大规模地处理每天数以十亿计级别的消息。NSQ 具有分布式和去中心化拓扑结构,该结构具有无单点故障、故障容错、高可用性以及能够保证消息的可靠传递的特征。 二进制下载路径: https://github.com/nsqio/nsq/releases下载需要的二进制包: 解压之后: 执行一下命令:cd /Users/xinzhiyun/ns原创 2017-11-27 23:06:54 · 5427 阅读 · 0 评论 -
golang strings 包的使用详解
package mainimport ( "fmt" "strings" //"unicode/utf8")func main() { fmt.Println("查找子串是否在指定的字符串中") fmt.Println(" Contains 函数的用法") fmt.Println(strings.Contains("seafood", "f原创 2018-01-08 14:03:13 · 4055 阅读 · 0 评论 -
什么是 JWT
什么是JWTJson web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接转载 2018-02-01 13:18:48 · 284 阅读 · 0 评论 -
golang JWT(Json Web Tocken)
什么是JWT,相信大家都熟悉了,我直接上代码了,有不懂的地方直接参考什么是JWTpackage mainimport ( "crypto/hmac" "crypto/sha256" "encoding/base64" "github.com/dgrijalva/jwt-go" "fmt" "strconv" "time")//r原创 2018-02-01 13:15:50 · 970 阅读 · 0 评论 -
golang 定时任务demo
执行上代码package mainimport ( "gopkg.in/robfig/cron.v2" "sync" "fmt" "time")func main() { //doTime 秒 分 时 日 月 星期 doTime := time.Now().Add(10*time.Second).Format("05 04 15 * *...原创 2018-03-24 09:06:23 · 3440 阅读 · 1 评论 -
golang encoding/gob包使用demo
代码➜ test cat gob.go package mainimport ( "bytes" "encoding/gob" "fmt" "log")type P struct { X, Y, Z int Name string}type Q struct { X, Y, Z *int32 Name...原创 2018-04-20 18:02:19 · 785 阅读 · 0 评论 -
LZW算法 golang实现
// LZW Data Compression in Golangpackage mainimport "fmt"func compressLZW(testStr string) []int { code := 256 dictionary := make(map[string]int) for i := 0; i < 256; i++ { di转载 2017-10-14 12:27:20 · 752 阅读 · 0 评论 -
golang 进程属性和控制
golang 进程属性和控制每个进程都有一些属性,os 包提供了一些函数可以获取进程属性。1.1. 进程 ID每个进程都会有一个进程ID,可以通过 os.Getpid 获得。同时,每个进程都有创建自己的父进程,通过 os.Getppid 获得。1.2. 进程凭证Unix 中进程都有一套数字表示的用户 ID(UID) 和组 ID(GID),有时也将这些 ID 称之为进程凭证。Windows 下总是 -原创 2017-10-23 09:07:37 · 9912 阅读 · 0 评论 -
golang 的指针和非指针方法的见解
值类型的变量和指针类型的变量先声明一个结构体:type T struct { Name string}func (t T) M1() { t.Name = "name1"}func (t *T) M2() { t.Name = "name2"}M1() 的接收者是值类型 T, M2() 的接收者是值类型 *T , 两个方法内都是改变Name值。下面声明一个 T 类型的变转载 2017-10-05 16:23:38 · 4835 阅读 · 0 评论 -
golang的交叉编译
1.首先进入go/src 源码所在目录,执行如下命令创建目标平台所需的包和工具文件。 $ cd /usr/local/go/src $ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 ./make.bash如果是 Windows 则修改 GOOS 即可。 $ CGO_ENABLED=0 GOOS=windows GOARCH=amd64 ./make.转载 2017-06-22 09:13:00 · 848 阅读 · 0 评论 -
算法之快速排序(golang)
codepackage mainimport ( "fmt")func swap(i, j int, a []int) { a[i], a[j] = a[j], a[i]}func partition(a []int, left, right int) int { pivotKey := a[left] pivotPointer := left for left原创 2017-07-22 17:41:48 · 323 阅读 · 0 评论 -
算法之冒泡算法(golang)
package mainimport ( “fmt” )//交换值函数 func swap(i, j int, a []int) { a[i], a[j] = a[j], a[i] }//冒泡排序实现函数 func BubbleSort(a []int) {if len(a) == 0 { return}length := len(a)for i := 0; i原创 2017-07-19 22:47:20 · 295 阅读 · 0 评论 -
golang 各版本下载地址
由于需要翻墙 不好找 因此记下地址,以备日后之所需https://storage.googleapis.com/golang原创 2017-08-12 12:49:25 · 15388 阅读 · 0 评论 -
golang之下划线(_)之语义说明
golang的下划线有以下三种用法1.忽略返回值 这个应该是最简单的用途,比如某个函数返回三个参数,但是我们只需要其中的两个,另外一个参数可以忽略,这样的话代码可以这样写:v1, v2, _ := function(...)2.用在变量(特别是接口断言)例如我们定义了一个接口(interface):type Foo interface { Say()}然后定义了一个结构体(struct转载 2017-09-13 21:58:07 · 11469 阅读 · 2 评论 -
golang 算法之 pancake
// Pancake Sort in Golangpackage mainimport "fmt"func main() { list := data{28, 11, 59, -26, 503, 158, 997, 193, -23, 44} fmt.Println("\n--- Unsorted --- \n\n", list) list.pancakesort()原创 2017-09-25 18:38:38 · 496 阅读 · 0 评论 -
golang 定时刷新配置文件
实时刷新配置文件例子,不多说 直接上代码dir➜ test tree.├── app│ ├── de.tmpl.go│ └── demo.tmpl├── linesearch.go├── linked.go├── snowflake.go└── template.go1 directory, 6 filesconfigfile# [member]原创 2017-09-20 22:31:38 · 2596 阅读 · 0 评论 -
golang huffman
// Huffman Coding in Golangpackage mainimport ( "container/heap" "fmt")type HuffmanTree interface { Freq() int}type HuffmanLeaf struct { freq int value rune}type HuffmanNode st原创 2017-09-20 23:04:31 · 2894 阅读 · 0 评论 -
golang template
关键内容:{{.}} 表示当前对象 --直接输出对象便利店数组 map 数据切片{{range …}}{{end}} {{with …}}…{{end}} package mainimport ( "html/template" "os")type Friend struct { Fname string}type Person struct { UserN原创 2017-09-21 16:14:55 · 720 阅读 · 0 评论 -
关于golang的defer、 return、返回值三者的执行逻辑
无名返回值的情况package mainimport ( "fmt")func main() { fmt.Println("return:", a()) // 打印结果为 return: 0}func a() int { var i int defer func() { i++ fmt.Println("defer2:", i) /转载 2017-10-05 15:54:55 · 1121 阅读 · 0 评论 -
golang 1.12包管理探究
1.安装golang下载对应系统的Go安装包https://studygolang.com/dl2.安装完之后验证➜ go versiongo version go1.12.2 darwin/amd643.设置GO111MODULE环境变量 export GO111MODULE=auto ➜ echo $GO111MODULEautogo envGOARCH="...原创 2019-04-08 11:06:47 · 1789 阅读 · 0 评论