golang context的done和cancel的理解 for循环channel实现context.Done()阻塞输出 func main() { type Output struct { Num int } ms := make(chan context.Context) go func() { for i := 0; i < 100; i++ { time.Sleep(time.Duration(5) * time.Second) u := &Output{ Num: i, } c := context.WithValue(context.Backgro..
centos7 rabbitmq-server-3.8.19手动rpm打包安装说明 rabbitmq-server-3.8.19安装说明安装指南参考官方文档:https://rabbitmq.com/install-rpm.html安装版本和地址 1、elrang版本:23.0以上2、RabbitMQ版本号:RabbitMQ 3.8.19 (1)Windows系统: https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.19/rabbitmq-server-3.8.19.exe
使用反射设置和获取struct的字段值 有个struct对象需要通过interface{}或者继承的接口来传参,但是在未知它是哪个对象的情况下如何获取它的字段值。可以使用反射获取值。亲测可用!//GetField 获取字段值func GetField(object interface{}, field string) interface{} { t := reflect.TypeOf(object) if t.Kind() == reflect.Ptr { t = t.Elem() } if t.Kind() == ref
【最终解决】window10安装chocolatey @"C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSP
golang判断切片是否包含某个索引键 //HasIndex 切片是否存在索引func HasIndex(index int, data []interface{}) bool { return len(data) > index}
golang首字母转大小写 //LeftUpper 首字母转大写func LeftUpper(s string) string { if len(s) > 0{ return strings.ToUpper(string(s[0])) + s[1:] } return s}//LeftLower 首字母转小写func LeftLower(s string) string { if len(s) > 0 { return strings.ToUpper(string.
golang map多维key获取值 有时候需要获取一个多维map中某个key的值,只能用.(map[string]interface{})慢慢强转换以后来取,太多的话就麻烦了。因此我写了一个多维map的取值函数,类似于PHP中的多维关联数组。函数如下:import ( "encoding/json" "errors")//MapGetValue map[string]interface{}获取值,支持多维func MapGetValue(keys []string, data map[string]interface{}
golang sqlx rows.Next() scan扫描列表和一行 最近在用clickhouse,使用的是github.com/jmoiron/sqlx包,但是查询时只能返回rows迭代对象和row,要自己去Next()。所以想写个函数自动把rows转换成struct列表或map列表。现在分享下来。1、扫描列表package clickhousesimport ( "github.com/jmoiron/sqlx" "reflect")type ClickhouseRows struct {}//Scan 扫描结果func (r *C
golang内网或者离线情况下不用vendor如何使用包 我没写过什么博客,但是在golang一路走来的路上,遇到问题,是很多golang前辈们留下来的博客给我解决问题和成长的,所以我在想,我不写,你不写,以后新人怎么成长?所以虽然我的golang还不是特别优秀。但是解决的问题,还是要写下来,方便遇到同样问题的朋友解决。 我们现在这家公司用的内网,外网和内网需要切来切去,内网我要写golang,但是没法子连外网下载包。 方法是在外网新建同样的go项目下载好包,然后把gopath全部复制到内网项目的gopath里面,重启goland或者运行...
windows7 安装elasicsearch5.2 1. 进入https://www.elastic.co/downloads,点击列表中的Elasticsearch下的download按钮,下载zip包。2.将下载的zip解压到D:/service/es3.进行config目录,编辑elasticsearch.yml文件,具体配置说明请看:cluster.name: my-applicationnode.name: nod