![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
GoLang
清笙漓江南
云计算,游戏运维,容器
展开
-
client-go 使用restClient 访问deploy资源
看了网上很多博客都是在使用restclient访问pod资源,于是想使用他查询一些pod以外的资源,比如deployment,使用途中遇到了一个问题,不知道怎么选择config的APIPath,试了apps,api/apps,apps/v1发现都不行, 于是思考了一下这个APIPath到底指的是什么,与试了一下apis, 这下成功了。所以这里的APIPath其实也就是资源的上一级url吧 config.APIPath = "apis" config.NegotiatedSerializer = sch原创 2022-03-28 15:42:13 · 289 阅读 · 0 评论 -
Win10/11 GoLand 使用WSL2
wsl2 安装golang 1.17.2使用golang中文社区的包,官方包不好下载wget -c https://studygolang.com/dl/golang/go1.17.2.linux-amd64.tar.gz -O - | sudo tar -xz -C /usr/local配置golang环境创建GOPATH文件夹mkdir ~/go/{src,bin,pkg} -p将下列环境变量追加到用户的 ~/.profile文件中export GOROOT=/usr/local/go原创 2021-10-10 15:17:28 · 3737 阅读 · 5 评论 -
storing driver.Value type []uint8 into type *time.Time
unsupported Scan, storing driver.Value type []uint8 into type *time.Time连接数据库的时候,有的字段为TIMESTAMP类型需要在DSN里面加上?parseTime=trueadmin:redhat@tcp(1.1.1.1:3306)/userlist?parseTime=True原创 2020-08-11 22:38:13 · 1317 阅读 · 0 评论 -
Golang 字符串中二进制的加法 + 最接近三数之和
//求字符串中的二进制和//比如 a="11" //b= "1" //sum= 100// 目前有两种方式来做,第一种就是用模拟二进制加法的方式,第二种就是将二进制转换成十进制// 然后相加之后,转回二进制的方法第一种: 二进制加法func binarySum(a,b string) string { index_a := len(a) - 1 index_b := len(b) - 1 jinwei := 0 result := "" for index_a >=0 &a原创 2020-06-24 21:59:56 · 904 阅读 · 0 评论 -
go test 1
测试函数为 判断一组字符串是否为回文 Palindrome要注意,测试函数文件要以_test.go结尾, 里面的测试函数以Test开头并且测试函数的文件要和被测试函数的文件在同一文件夹下面先写需要测试的函数// 在这里我们编写Palindrome函数package ispastringimport "unicode"func IsPalindrome(str string) b...原创 2019-11-23 15:57:34 · 114 阅读 · 0 评论 -
go 中间件 Gin 版
使用gin框架 实现web功能还是很方便的比起net/http 方便简单很多很重要的一点就是, context.Next() (context 为gin.context) 函数 之前的部分为 主处理逻辑之前执行的部分, Next之后为处理完之后执行的部分 ,理解这一点很重要,,其实也就是先将请求处理一下,框架会自动将处理后的请求发送给主处理代码段。package mainimport ...原创 2019-11-07 23:06:31 · 258 阅读 · 0 评论 -
Go net/http 中间件
了我直接写成了嵌套的中间件并且在第一层实现了 basic auth 的功能.可能代码中间有些变量名 没有很规范package mainimport ( "fmt" "net/http")// 认证的用户列表,存储用户名以及密码var ( list = map[string]string{ "jack":"cat", })// 第一层中间件的结构体, 他需要实现htt...原创 2019-11-07 22:58:17 · 615 阅读 · 0 评论 -
Golang 数组模拟环形队列
package mainimport ( "errors" "fmt" "os")type CircleQueue struct { head int tail int array [5]int maxSize int}func (this *CircleQueue) IsFull() bool { return (this.tail+1)%this...原创 2019-02-22 23:13:17 · 463 阅读 · 0 评论 -
Golang 实现etcd键值对的写入查看,并在租约时间内存在
etcd版本3.2,开放端口2379package mainimport ( "context" "fmt" "go.etcd.io/etcd/clientv3" "time")func main() { const ( key1 = "/etc/etcd/etcd.conf" val2 = "etcd.conf" keepTime = 100*ti原创 2019-02-12 23:35:34 · 1767 阅读 · 0 评论 -
Golang append函数的基本原理
append 函数func append(slice []Type, elems ...Type) []Type将元素添加至切片中,如果超出了容量,将会返回一个容量二倍与当前切片的切片本身我们看不见append的代码,所以我就随便模拟了一下func addInt(x []int, y int) []int{ var z []int zlen := len(x) + 1 if zle...原创 2019-03-03 15:14:46 · 6072 阅读 · 12 评论 -
Golang 二叉树插入排序
/* 我们将切片中的元素插入到二叉树中,通过二叉树的遍历排序 */type tree struct { values int left, right *tree}func SortTree(values []int) { var root *tree for _, v := range values { root = Insert(root, v) } addValues(...原创 2019-03-06 17:18:59 · 437 阅读 · 0 评论 -
判断32or64位机器
在阅读 go 语言圣经的时候突然发现了一条语句,用来判断计算机的位数int = 32 << (^uint(0) >> 63)在64位机器上面,^uint(0)返回的其实就是18446744073709551615,其实也就是2^64次方,如果实在32位机器上面会返回2^32次方,这个时候先向右移63位,64位机会的到1,而32位会得到0,这个时候32向左移1或者0(...原创 2019-03-10 15:43:48 · 447 阅读 · 1 评论 -
gouroutine 练习题
package mainimport ( "fmt")type haha struct { num int sum int}var ( chann = make(chan int,2000) Sumchan = make(chan *haha) dengdai = make(chan bool, 1))func hanshu(chann chan int) ...原创 2019-04-07 20:58:40 · 258 阅读 · 0 评论 -
8个goroutine 取1000以内的素数
go语言方便的并发模式,帮助我们更快的实现程序我采用了8个协程同时取1000以内的素数准备了三个管道1、intChan 用来存放1000个数字2、primeChan 用来存放素数3、exitChan 如果一个协程取不到intChan中的数据,就往exitChan中释放一个信号,表示该协程退出我们的主线程通过for循环阻塞的接收exitChan放出的信号,并且遍历primeChan...原创 2019-04-08 14:31:55 · 234 阅读 · 0 评论 -
扇入、扇出 (判断大值素数)
普通的pipeline stage代码package mainimport ( "math/rand" "time" "fmt")func main() { rands := func() interface{} {return rand.Intn(500000000)} toInt := func(done <-chan interface{}, value &...原创 2019-04-22 11:03:44 · 542 阅读 · 0 评论 -
稀疏数组从文件中恢复
首先我们来生成稀疏数组并且存到文件中package mainimport ( "fmt" "strconv" "os" "bufio")type ValNode struct { row,col, val int}var x stringfunc main() { var array [11][11]int array[1][2] = 1 array[3][4] = ...原创 2019-05-04 15:29:08 · 412 阅读 · 0 评论 -
leetcode 两数相加 Go!
type ListNode struct { Val int Next *ListNode}//我是将加到的sum组成ListNode结构体,然后放入切片,将切片的首位next一直指向左后一个元素即可func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode { var slice []*ListNode n1 := l1...原创 2019-05-08 19:05:15 · 153 阅读 · 0 评论 -
Golang 去除字符串中的重复字符
两种方法第一种利用了golang的map数据结构,去除的字符串顺序无法保证,第二种可以保证1func chazhao(str string) string { x := make(map[string]int, len(str)) for i := 0; i < len(str); i++ { x[fmt.Sprintf("%c", str[i])] = i } i :=...原创 2019-09-12 18:50:33 · 4602 阅读 · 0 评论 -
cannot use auth.callOpts (type []"github.com/coreos/etcd/vendor/google.golang.org。。
在经过了很多此下载之后终于将golang的etcd api吧下载成功了但是出现了一些错误很多此在github上面下载失败的原因是下面这个链接所说到的https://github.com/etcd-io/etcd/pull/10044#issuecomment-417125341可以自己打开翻译看一下我最终是通过go get github.com/coreos/etcd/clientv3...原创 2019-02-11 15:32:44 · 3581 阅读 · 13 评论 -
Golang Cron调度简单实践
我实现的是将两个cron事件放入调度协程中,并判断是否过期,过期便执行1、我们创建事件的结构体2、将结构体放入map3、起协程,并判断是否过期,检测判断过程应该减少cpu消耗期间主协程应该睡眠,以防止中断主要用到了github.com/gorhill/cronexpr包package mainimport ( "github.com/gorhill/cronexpr" "ti...原创 2019-02-11 10:36:53 · 1455 阅读 · 0 评论 -
Golang MongoDB 插入与查询
mongodb 需要2.6版本以上mongodb可以去阿里云的镜像站下载,有yum源mongodb的drivergo get github.com/mongodb/mongo-go-driverpackage mainimport ( "context" "fmt" "github.com/mongodb/mongo-go-driver/bson/primitive" "gi...原创 2019-02-15 17:15:33 · 7478 阅读 · 0 评论 -
GoLang 单链表插入
package mainimport ( "fmt" "math/rand")type Student struct { Name string Age int Score float32 Next *Stud...原创 2018-05-29 21:34:28 · 840 阅读 · 0 评论 -
Golang 模拟大数运算( 超出int64 )可表示范围
package mainimport ( "bufio" "os" "fmt" "strings")func multi(str1,str2 string) (result string) { if len(str1) ==0 && len(str2) ==0 { result = "0" return } var index1 = len(原创 2018-07-23 20:14:55 · 5814 阅读 · 0 评论 -
Golang 回文
package mainimport ( "fmt")func test(n string) bool { result := []rune(n) length := len(result) for i,_ := range result { if i == length/2 { break } tail := length-i-1 if result[...原创 2018-07-23 20:19:02 · 609 阅读 · 0 评论 -
Golang 斐波那契数列
package mainimport "fmt"func rescuive(i int) int { if i<=1 { return 1 } return rescuive(i-1)+ rescuive(i-2)}func main() { for i:=1;i<10;i++ { sum := rescuive(i) fmt.Println(su...原创 2018-07-23 20:53:50 · 1171 阅读 · 0 评论 -
Golang 冒泡排序 优化版
package mainimport "fmt"func maopao(str []int) { lastexchange := 0 sortBorken := len(str) for i:=0;i<len(str);i++ { broken:=true for j:=1;j<sortBorken;j++{ if str[j]<str[j-1]...原创 2018-07-25 21:28:35 · 235 阅读 · 0 评论 -
Golang 识别水仙花数
利用了ASCII码中0的十进制 package mainimport ( "fmt" "strconv")func daffodil(n string) { var s int var sum int for i:=0;i<len(n);i++ { s=int(n[i]-'0') sum += s*s*s } number,_:=strconv.Atoi(...原创 2018-07-21 10:19:34 · 715 阅读 · 2 评论 -
Golang 归并排序
package mainimport "fmt"func Guibin(a []int,p,q,r int) { n1 := q-p+1 n2 := r-q Left := make([]int,n1+1) Right := make([]int,n2+1) for i := 0; i< n2;i++ { Right[i] = a[q+i+1] } Rig...原创 2018-08-02 17:41:03 · 684 阅读 · 0 评论 -
Golang 实现通用链表类
package mainimport "fmt"type LinkNode struct { Data interface{} Next *LinkNode}type Link struct { Head *LinkNode Tail *LinkNode}func (p *Link) InsertHead(data interface{}) { node := &...原创 2018-08-02 18:28:20 · 388 阅读 · 0 评论 -
Golang 分治法求切片最大子数组
package mainimport ( "fmt")func FIND_MAX(Slice []int,low,mid,high int) (int,int,int){ left_sum:= -99999 sum :=0 max_left:=mid for i:=mid ;i &gt;= low ;i-- { sum += Sl...原创 2018-08-12 00:19:51 · 781 阅读 · 0 评论 -
Golang 鸡尾酒排序
鸡尾酒镇楼 emmm,,,,勿喷 ^_^package mainimport "fmt"func Jiweijie(a []int) { // 记录最后一次交换元素位置 LastRightexchangeindex := 0 LastLeftexchangeindex := 0 //无需数列的边界,每次只需比较至此 rightSortBorder := len(a...原创 2018-08-02 23:32:46 · 205 阅读 · 0 评论 -
Golang ioutil.ReadDir 读取目录下的内容
ioutil中提供了一个非常翻遍的函数函数ReadDir,他读取目录并返回排好序的文件以及子目录名([]os.FileInfo)example:编写程序输出某目录下的所有文件。package mainimport ( "io/ioutil" "fmt" "os")func listAll(path string, curHier int) { ...原创 2018-09-13 15:17:05 · 11041 阅读 · 4 评论 -
Golang 切片的小操作
package mainimport ( "fmt")//切片的反转func Fanzhuan(str []int) []int { for i, j := 0, len(str)-1; i &lt; j; i, j = i+1, j-1 { str[i], str[j] = str[j], str[i] } return str}// 字符切片是否相等func e...原创 2018-10-23 20:34:33 · 439 阅读 · 0 评论 -
Golang map有序化
要使得Map有序化,我们必须要对map的key进行排序,我们可以使用sort.Strings函数对字符串进行排序。package mainimport ( "fmt" "sort")func main() { slice1 := map[string]int{ "wangxiaoming": 12, "liming": 11, "fenglingling"...原创 2018-10-24 10:02:16 · 9902 阅读 · 0 评论 -
Golang Beego 小实践
还是闲来无事收到offer之后便是一条咸鱼今天花了几个小时,理解并且利用beego完成了一个注册和登陆的代码First,我们下载beego(go get 前提是安装了git)go get github.com/astaxie/beegogo get github.com/beego/beego get github.com/astaxie/beego/orm下载之后需要运行一下be...原创 2018-11-11 23:45:27 · 545 阅读 · 0 评论 -
Golang Redis IN Action
我用CentOS 7的VMware 虚拟机作为redis-server安装 调试yum install redisvim /etc/redis.conf修改 bind 0.0.0.0 使其监听在所有地址, 默认端口6379,不用更改systemctl start redis这个时候我们就可以连接上去了好!接下来 安装golang的redis 库go get github.c...原创 2018-11-20 23:12:01 · 534 阅读 · 0 评论 -
Golang FORM相关字段理解
Form 字段通过调用Request结构体提供的方法,我们可以将URL、Body、或者以上两者的数据提取到该结构体的Form、PostForm和MultipartForm等字段中。(1)调用ParseForm方法或者ParseMultipartForm方法,对请求进行分析(2)访问相应的字段事例:package mainimport ( "net/http" "fmt")fu...原创 2018-11-19 18:47:08 · 3659 阅读 · 0 评论 -
Golang io.Pipe()中 PipeReader 和 PipeWriter
PipeReader 是管道端的读取端(并没有导出字段的结构体)。他实现了io.Reader 和 io.Closer接口type PipeReader struct{ p *pipe}PipeReader.Read方法:从管道中读取数据。该方法会堵塞,知道管道的写入端开始写入或者写入端关闭。如果写入端关闭是带有Error(即调用CloseWithError关闭),该Reader返回的...原创 2018-11-26 21:11:53 · 2489 阅读 · 0 评论 -
GoLang 的冒泡快速插入排序
package mainimport ( "fmt")func maopao(a []int) { for i:= 0;i< len(a); i++ { for j:= 1; j< len(a)-i; j++ { if a[j] < a[j-1] { a[j],a[j-1] = a[j-1],a[j] ...原创 2018-05-22 22:47:35 · 162 阅读 · 0 评论