Go

golang 利用信号监听保持主线程不退出

搞了个小脚本,最初用了死循环保持主线程不退出,后来发现CPU占用很高.最后用了如下办法 直接上代码吧. package main import ( "fmt" "os" "os/signal" "syscall" ) // 监听指定信号 func main() { //合建chan c := make(chan os.Signal) //监听指定信号 ctrl+c kill signal.Notify(c, os.Interrupt, os.Kill, syscall.SIGUSR1, syscall.SIGUSR2) //阻塞直到有信号传入 fmt.Println("启动") //阻塞直至有信号传入 s := <-c fmt.Println("退出信号", s) }

golang go-session SetsessionID 以及直接返回MD5的修改

 刚接触 GO 两天, 用了echo 使用官方推荐的 session 不好使,(估计是我不会用). 找到了一个国人兄弟的库,这里强烈推荐一下,很不错. https://github.com/go-session/echo-session 因为个人业务罗技需要作了如下修改: 1.将原作者返回的base64 修改为直接返回 md5 go-session\session\session.go import 增加 "crypto/md5" 三十二行左右,将 return newUUID() 修改为下面 sessionID: func(_ context.Context) string { return Sha1String(newUUID()) //修改 默认返回uuid 修改为 md5值  by 职业菜鸟 20190429 },   随便找个位置 新增 下面函数 func Sha1String(data string) string { //新增 获取字符串sha1 备用  by 职业菜鸟 2019...

golang 解析json到 map 使用办法

习惯了 python 简易, 这里放一下 go 的 json 解析到map的方法  import ( "encoding/json" "fmt" ) data := "{\"info\":{\"ver\":\"1.0\"},\"id\":\"1\"}" json_map := make(map[string]interface{}) err := json.NewDecoder(strings.NewReader(data)).Decode(&json_map) if err != nil { return err } else { info := json_map["info"].(map[string]interface{}) ver := info["ver"].(string) fmt.Println("ver:&q...

go vscode 调试环境安装

 go get -v -u github.com/peterh/liner github.com/derekparker/delve/cmd/dlv 一行命令.