随笔分类 - Golang
摘要:new和make 1. new 和 make 都用于分配内存; 2. new 对指针类型分配内存,返回值是分配类型的指针,new也可以对 slice 、map、channel 分配内存;但多用于自定义的结构体 3. make 仅用于 slice、map和 channel 类型的初始化分配内存空间,返
阅读全文
摘要:golang 批量构建jenkins job py批量构建jenkins job是,若job在某个floder下面则无法调用,目前测试发现只要job在jenkins根目录下才可调用。golang则比较灵活,可以实现该需求,此处记录golang使用gojenkins包来批量构建jenkins的job。
阅读全文
摘要:k8s operator开发与使用 本篇文章用于记录k8s operator的开发,此处以一个简单的demo来记录operator的开发过程及相关要点;本文中使用kubebuilder工具来生成相关代码。 实现一个daemonset资源对象的operator,作用为在每个节点启动一个nginx po
阅读全文
摘要:Clientset 构造clientset操作k8s集群。 package main import ( "context" "fmt" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" "k8s.io/cl
阅读全文
摘要:关于client-go client-go是一个golang的client,我们可以通过client-go与K8S apiServer进行交互,对k8s集群中资源对象,包括内置资源(例如:Pod、Deployment、Service等)和CRD进行增删改查等操作。 client-go地址: http
阅读全文
摘要:golang使用dingtalk的webhook地址,发送消息通知 此处用于记录golang调用dingtalk webhook地址发送消息通知,方便后续参考使用; 一、使用http包 自己拼接消息体,使用http包的post请求来发送消息,代码示例如下:(注意,发送消息需要满足钉钉机器人安全设置中
阅读全文
摘要:golang操作mysql package main import ( "database/sql" "fmt" "time" _ "github.com/go-sql-driver/mysql" ) //定义一个全局db对象 var db *sql.DB func initDB() (err er
阅读全文
摘要:package main //sqlx示例 import ( "errors" "fmt" _ "github.com/go-sql-driver/mysql" "github.com/jmoiron/sqlx" ) var DB *sqlx.DB type User struct { ID int
阅读全文
摘要:结构体与JSON序列化 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。JSON键值对是用来保存JS对象的一种方式,键/值对组合中的键名写在前面并用双引号""包裹,使用冒号:分隔,然后紧接着值;多个键值之间使用
阅读全文
摘要:Map map是一堆键值对的未排序集合,比如以身份证号作为唯一键来标识一个人的信息。 map是引用类型,键必须支持相等运算符(==,!=)类型,比如:int,string,float等内建类型,只含有内建类型的结构体可以作为key。值可以是任意类型,没有限制。 初始化 package main im
阅读全文
摘要:切片 切片并不是数组或者数组指针,切片只是对数组中连续片断的引用,这个片断可以是整个数组,也可以是由起始索引和终止索引标识的数组,所以切片是一个引用类型。 // 切片的数据结构 struct Slice{ byte* array; uintgo len; uintgo cap; } 切片是引用类型,
阅读全文
摘要:golang解析yaml文件 yaml 文件是目前最常用的配置文件,使用go语言编写代码和工具时,也会用到yaml文件,将服务配置及中间件等信息定义到yaml文件中,那么如何将yaml文件中定义的信息读取到代码中进行使用呢?此处使用yaml包和viper包来解析配置文件,后续可根据实际场景来选用。
阅读全文
摘要:Golang读写文件 这里记录golang在读写操作文件时的一些方法,供后续查询使用; 在读写文件时,此处记录3种方式来操作: 使用io/ioutils包来完成,主要为一次性读取和一次性写入 使用切片的方式,构建一个字节切片,将读入的内容放入其中,然后通过for循环写入 使用带缓冲的读取器bufio
阅读全文
摘要:golang使用redis-go操作redis 此处记录redis-go包连接redis,操作常用str、hash类型的数据。 package main import ( "context" "fmt" "github.com/go-redis/redis/v8" ) var rdb *redis.
阅读全文
摘要:sqlx库使用指南 在项目中比起常用的database/sql连接mysql数据库,sqlx的封装程度会更高,操作会更加便捷,此处我们记录sqlx如何操作mysql。 安装sqlx go get github.com/jmoiron/sqlx 基本使用 连接数据库 package main//sq
阅读全文
摘要:golang标准库time time包提供时间显示和时间间隔的相关功能。 基本使用 打印当前时间,基本使用实例: func main() { now := time.Now() fmt.Printf("now=%v,now type=%T\n",now,now) //now=2022-05-03 1
阅读全文
摘要:Go语言标准库log包 log go语言内置的log包实现了简单的日志记录功能,本文主要记录log包的基本使用 使用logger log包定义了异常格式化输出的方法。可以通过调用Print系列(Print|Printf|Println),Fatal系列(Fatal|Fatalln|Fatalf),P
阅读全文
摘要:strings包 strgins包用于字符串相关处理,使用频率较高,此处记录常用方法示例方便后续回顾。 更多详情可参考官网:https://studygolang.com/pkgdoc package main import ( "strings" "fmt" ) func main() { //1
阅读全文