golang

Go

结合Kubebuilder与code-generator开发Operator

93 0

结合Kubebuilder与code-generator开发Operator一、概念简介1.1 code-generatork8s.io/client-go for talking to a kubernetes cluster.​ k8s.io/client-go 提供了对k8s原生资源的informer和clientset等等,但对于自定义资源的操作则相对低效,需要使用 rest api 和 dynamic client 来操作,并自己实现反序列化等功能。​ code-generator

Go

golang封装解析请求参数(使用不同的请求头)

180 0

post 请求时可以根据Header设置的Content-Type使用不同的请求体 POST常用的 Content-Type:multipart/form-data; boundary=html 页面里常用的 formx-www-form-urlencoded形式如 a=1&b=2和get请求形式一样,只不过是放在post请求体里application/jsonpost 请求体里传的是 json 字符串application/xmlpost 请求体里传的是完整的 xml另个还可以自定义 Content-T

Go

go mod特定依赖包处理

62 0

自从golang原生支持go mod以后,将golang应用依赖处理统一和标准化了,但是在使用中还是会遇到一些问题,比如以下go.mod module github.com/wowchemy/starter-bloggo 1.14require (github.com/wowchemy/wowchemy-hugo-modules/wowchemy v0.0.0-20210209220000-aa4fe0c75726 // indirectgithub.com/wowchemy/wowchemy-hugo-

Go

12 Golang defer panic recover

48 0

deferGolang中的defer会将其后面跟随的语句进行延迟处理。在defer归属的函数即将返回时,将延迟处理的语句按defer定义的逆序执行。也就是说,最先被defer的语句最后被执行。fmt.Println("开始") defer fmt.Println(1) defer fmt.Println(2) defer fmt.Println(3) fmt.Println("结束") //开始 //结束 //3 //2 //1defer在函数中必须是匿名自执行函数func f1(){fmt.Printl

Go

排序算法 (桶、冒泡、快速)

41 0

以下模块以Golang调试桶排序(简化版) 桶排序,受限于所需要排序的数字区间,也就是说,当所需要排序的数字足够大的时候,就需要申请足够容纳数字最大值长度的内容空间,只需要对数字区间内的几个数字做排序;浪费空间; 复杂度:O(M+N)func bucketSort() {var (input = []int{1, 8, 3, 5, 2, 4, 5}result = []int{})for i :

Go

手撸golang GO与微服务 net.rpc

61 0

手撸golang GO与微服务 net.rpc 缘起 最近阅读 [Go微服务实战] (刘金亮, 2021.1) 本系列笔记拟采用golang练习之 gitee: https://gitee.com/ioly/learning.gooop net/rpc 微服务中的进程间通信概述 对于进程间通信的技术,开发者有多种选择。 可以选择基于同步通信的通信机制,比如HTTP RESTful; 也可以选择基于异步通信的方式,Go语言提供了标准的net/rpc包以支持异步。远程过程调用协议(Remote Procedu

Go

手撸golang GO与微服务 net.rpc之1

101 0

手撸golang GO与微服务 net.rpc缘起最近阅读 [Go微服务实战] (刘金亮, 2021.1)本系列笔记拟采用golang练习之gitee: https://gitee.com/ioly/learning.gooopnet/rpc微服务中的进程间通信概述 对于进程间通信的技术,开发者有多种选择。 可以选择基于同步通信的通信机制,比如HTTP RESTful; 也可以选择基于异步通信的方式,Go语言提供了标准的net/rpc包以支持异步。远程过程调用协议(Remote Procedure Cal

Go

使用BKLexer进行词法分析

47 0

前几天我已经封装好了词法分析器并命名BKLexer,当前BKLexer分别支持Go/C++/Python。程序代码放在Github项目当中: 点进项目页可以参考每一个版本的try_lexer代码进行学习,下面以Go为例:package mainimport ("fmt""strconv""./bklexer" )func main() {fmt.Println("Test Code:")code := "声明 变量 = PI * 100 - fda\n1024 * 4 * 3.14 ### \n123"f