
Go
文章平均质量分 67
小师life
清新活跃,活于当下,成长于当下。
个人博客:https://chunlife.top
展开
-
GRPC Protobuf管理之submodule
使用Git Submodule方式管理proto文件,各项目直接依赖IDL文件本身,依赖源头均来自git子仓,保证依赖源的唯一性。对齐各服务间的proto文件版本。依赖问题引发的问题是很多的,对于依赖的管理也会出现很多,例如:Dependency_hell 1Dependency_hell 2参考Google家的库googleapis:子仓在引入后,不去更新,子仓会呈现固定的版本。更新子仓,合并上游版本变化更多关于子仓的操作命令,参考:Git-工具-子模块,也可参考下图。脑图分享链接:proto文件中原创 2022-06-10 18:00:36 · 710 阅读 · 0 评论 -
RSA加密解密
截取自我的博客:https://chunlife.top/2018/07/29/RSA%E5%8A%A0%E5%AF%86%E8%A7%A3%E5%AF%86/因为项目需要,最近做一个RSA加密解密的接口,使用Go进行开发,接口使用jsonrpc,go 对RSA加密解密有很好的支持,不过由于受限于底层单片机,所以上层应用需要做一些稍微的调整。一、概要RSA是一种非对称加密算法,什么...原创 2018-08-02 10:00:54 · 4569 阅读 · 0 评论 -
stringSlice转换——无需内存copy
摘取自gateway,作者提到过这种方式,也是来源于另一个开源项目,操作方式极其硬核,故收藏了。String与Slice互转package hackimport ( "reflect" "unsafe")// SliceToString slice to string with out data copyfunc SliceToString(b []byte) (s ...原创 2019-04-24 14:47:53 · 1070 阅读 · 0 评论 -
Go打印结构体的field
Go可以很方便的打印出结构体的field,不同于json.Marshal()操作,json操作有很多局限性,首先其要求结构体字段为大写字段,否则没有访问权限,其二,其会多出一步函数调用,比较麻烦。这里又很方便既可以将结构体field打印出来的方法,不用区分大小写。printf的关键字:%+v,其中v不加+也是有所区别的。type info struct { Key string V...原创 2019-04-24 14:53:07 · 5726 阅读 · 0 评论 -
Go-Goroutine运行切换
Goroutine称呼上一般被我们理解为协程(Coroutine),类似于轻量级“线程”。Goroutine是一种编译器/解释器/虚拟机层面的多任务,并不属于操作系统。多个协程可能在一个或多个线程上运行(由调度器决定)对比操作系统(*nix)的进程或线程来说,Goroutine作为非抢占式多任务处理,由协程主动交出控制权,也就是说,要么协程自动运行完毕,或者调度器主动来进行切换,否则,...原创 2019-04-24 14:54:37 · 975 阅读 · 0 评论 -
go里面的io-Writerr操作
将string转换成 io.Writer,可以进行类似于write的操作,类似于写文件一样。s := "Hello"buf := bytes.NewBufferString(s)fmt.Fprint(buf, ", World!")fmt.Println(buf.String())同样的,打开的文件也可以被转换成 io.Writer,继而直接向其写入数据。f, err := os....原创 2019-04-24 14:55:03 · 3467 阅读 · 0 评论 -
创建CSV,数据导入excel文件
代码: // Create a csv file f, err := os.OpenFile(facNFileName, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, os.ModePerm) if err != nil { return "" } defer f.Close() wsv := csv.NewWriter(f) // write cs...原创 2019-04-24 14:58:30 · 947 阅读 · 0 评论 -
baiduPCS学习
首先,百度云是一个非常好用的网盘,因为之前限速是在限得太过于厉害,无法忍受,在网上找了很多工具,其中就有BaiduPCS-Go,不得不说特别的好用,之前在此基础上,我添加了一个同步文件夹的功能,感觉代码挺简陋的,所以我也不好意思PR,这里主要是我想把项目中一些可以复用的函数给抽取出来,以便我日后翻阅吧。// Trigger 用于触发事件func Trigger(f func()) { if...原创 2019-04-24 14:59:17 · 715 阅读 · 0 评论