go
文章平均质量分 75
不爱学习的小妞
这个作者很懒,什么都没留下…
展开
-
记一次client-go接口使用问题:动态修改PVC的存储大小
在k8s集群中如何通过client-go的接口来动态修改PVC的存储大小呢?笔者开始时调用了其update接口,但是发现日志中会出现错误信息:PVC的spec是不可修改的;后面将接口换成patch,但是在调用patch接口时需要指定PatchType,PatchType分为四种:JSONPatchType、MergePatchType、StrategicMergePatchType和ApplyPatchType。MergePatchType和StrategicMergePatchType对于修改PVC的原创 2021-12-03 16:32:44 · 793 阅读 · 0 评论 -
Go语言核心36讲笔记12--接口类型的合理运用
文章目录1.接口的基础知识点2.如何判断一个数据类型的某个方法就是某个接口类型中的某个方法?3.当为一个接口类型赋值时会发生什么?4.接口变量的值在什么情况下才真正为nil?5.接口之间的组合6.如果我们把一个值为nil的某个实现类型的变量赋给了接口变量,那么在这个接口变量上仍然可 以调用该接口的方法吗?如果可以,有哪些注意事项?如果不可以,原因是什么?1.接口的基础知识点接口不能实例化,不能调用new函数或者make函数创建出一个接口类型的值不能用字面量来表示一个接口类型的值接口类型中声明的方原创 2021-09-11 15:25:10 · 88 阅读 · 0 评论 -
Go语言核心36讲笔记11--结构体及其方法的使用法门
文章目录1.函数与方法的区别2.结构体类型中的某个字段声明只有一个类型名,那么该字段代表了什么?3.Go语言是用嵌入字段实现继承吗?4.值方法与指针方法是什么意思,两者有何区别?5.思考题1.函数与方法的区别函数的定义声明中没有接收者,而在定义方法时会在func和方法名之间增加一个参数,这个参数就是接收者,这样就将方法和接收者绑定在一起了。此外方法隶属于类型。package mainimport "fmt"func main() { fmt.Println(sum(1, 2)) s :原创 2021-09-06 16:38:42 · 115 阅读 · 0 评论 -
Go语言核心36讲笔记10--使用函数的正确姿势
文章目录1.函数签名2.高阶函数3.思考题1.函数签名函数签名其实就是函数的参数列表和结果列表的统称,它定义了可用来鉴别不同函数的特征,同时也定义了与函数交互的方式。注意:各个参数结果和结果的名称不能算作函数签名的一部分,甚至对于结果声明来说,没有名称都可以。只有两个函数的参数列表和结果列表中的元素顺序及其类型是一致的,那么就可以说它们是一样的函数或者实现了同一函数类型的函数。package mainimport "fmt"type Printer func(contents string)原创 2021-08-12 14:53:53 · 112 阅读 · 0 评论 -
Go语言核心36讲笔记09--通道的高级玩法
文章目录1.单向通道1.1什么是单向通道?1.2单向通道有什么应用价值2.select3.思考题1.单向通道1.1什么是单向通道?单向通道是只能发不能收或者只能收不能发的通道,一个通道是单向的还是双向的是由它的类型字面量体现的。通道的类型字面量中的<-表示的是通道的方向:// 只能发不能收的通道var uselessChan = make(chan<- int, 1)// 只能收不能发的通道var anotherUselessChan = make(<-chan int,原创 2021-08-12 10:14:24 · 223 阅读 · 0 评论 -
Go语言核心36讲笔记08--通道的基本操作
文章目录一、pandas是什么?二、使用步骤一、pandas是什么?二、使用步骤原创 2021-08-03 18:55:16 · 160 阅读 · 0 评论 -
Go语言核心36讲笔记07--字典的操作和约束
文章目录1.字典的键类型不能是哪些类型?2.在字典中如何查找键值?3.优先考虑哪些类型作为字典的键类型?4.在值为nil的字典上执行读操作会能成功吗,那写操作呢?1.字典的键类型不能是哪些类型?Go 语言字典的键类型不可以是函数类型、字典类型和切片类型如果键的类型是接口类型的,那么键值的实际类型也不能是上述三种类型如果键的类型是数组类型,那么还要确保该类型的元素类型不是函数类型、字典类型 或切片类型注意:Go 语言规范规定,在键类型的值之间必须可以施加操作符==和!=。2.在字典中如何查找原创 2021-07-30 15:50:35 · 159 阅读 · 0 评论 -
Go语言核心36讲笔记06--container包中的那些容器
文章目录1.list基本使用2.ring基本使用3.Ring和List的区别4.heap1.list基本使用Go 语言的链表实现在其标准库的 container/list代码包中,这个包包含了两个公开的程序实体:List和Element,前者实现了一个双向链表,而后者则代表了链表中元素的结构。package mainimport ( "container/list" "fmt")func main() { //initialize a list l := list.New() fm原创 2021-07-30 14:18:54 · 104 阅读 · 0 评论 -
Go语言核心36讲笔记04--程序实体的那些事儿
文章目录1.声明变量的方式2.Go语言的类型推断带来哪些好处?3.变量重声明的前提条件4.Go语言中查找变量的过程5.不同代码块中的重名变量与变量重声明中的变量之间的区别6.类型断言表达式7.类型转换规则中有哪些值得注意的地方?8.潜在类型中需要注意的地方9.类型定义与类型别名10.思考题1.声明变量的方式var 变量名字 类型 = 表达式短变量声明2.Go语言的类型推断带来哪些好处?Go 语言的类型推断可以明显提升程序的灵活性,使得代码重构变得更加容易,同时又不会给代码的维护带来额外负担(实原创 2021-07-27 10:38:26 · 146 阅读 · 0 评论 -
Go语言核心36讲笔记05--数据和切片
文章目录1.数组与切片的区别与联系2.怎样估算切片容量的增长?3.切片的底层数组什么时候会被替换?4.思考题1.数组与切片的区别与联系数组的值的长度是固定的,而切片的值是可变长的切片的长度可以自动地随着其中元素数量的增长而增长,但不会随着元 素数量的减少而减少切片是引用类型,数组是值类型切片的容量表示其底层数组的长度切片的长度表示可以连续获取其底层数组中元素的数量2.怎样估算切片容量的增长?当一个切片无法容纳更多的元素时就会扩容,但是并不会改变原来的切片,而是会生成一个容量更大的切片原创 2021-07-23 10:35:06 · 85 阅读 · 0 评论 -
Go语言核心36讲笔记03--库源码文件
文章目录1.库源码文件2.示例demo3.思考题1.库源码文件库源码文件不能被直接运行,它仅仅用来存放程序实体,只要遵从Go语言规范,这些程序实体就可以被其他代码使用。2.示例demo(1)demo1代码结构如下://demo1.gopackage mainimport ( "flag")var name stringfunc init() { flag.StringVar(&name, "name", "everyone", "The greeting obje原创 2021-07-21 16:07:44 · 137 阅读 · 0 评论 -
Go语言核心36讲笔记02--命令源码文件
文章目录1.源码文件分类2.命令源码文件的用途3.示例demo思考题1.源码文件分类命令源码文件库源码文件测试源码文件2.命令源码文件的用途命令源码文件是程序的运行入口,是每个可独立运行的程序必须拥有的。我们可以通过构建或安装生成与其对应的可执行文件,后者一般会与该命令源码文件的直接父目录同名。如果一个源码文件声明属于main包,并且包含一个无参数声明且无结果声明的main函数,那么就是命令源码文件。对于一个独立的程序来说,命令源码文件永远只会也只能有一个。如果有与命令源码文件同包的源原创 2021-07-21 10:19:56 · 108 阅读 · 0 评论 -
Go语言核心36讲笔记01--工作区和GOPATH
文章目录1.设置GOPATH有什么意义?2.Go语言的组织方式3.源码安装结果4.构建和安装Go程序的过程5.思考题1.设置GOPATH有什么意义?环境变量 GOPATH 的值可以是一个目录的路径,也可以包含多个目录路径,每个目录都代表 Go 语言的一个工作区(workspace)。这些工作区用于放置 Go 语言的源码文件(source file),以及安装(install)后的归档文件(archive file,也就是以“.a”为扩展名的文件)和可执行文件(executable file)。原创 2021-07-20 16:29:57 · 88 阅读 · 0 评论 -
kubebuilder创建operator
文章目录前言一、环境准备二、kubebuilder demo1.创建一个project2.初始化项目3.在宿主机上安装kubectl4.安装CRD并部署controller5.创建CR前言一、环境准备1.go环境go环境搭建可以参考笔者之前的笔记macOS搭建go环境及VSCode安装使用教程sunxi@sunxideMacBook-Pro vagrant-provisioning % go versiongo version go1.16.5 darwin/amd642.kubebui原创 2021-07-05 11:24:54 · 568 阅读 · 0 评论 -
macOS搭建go环境及VSCode安装使用教程
1.go语言环境搭建在Mac上go语言环境搭建方式分为两种,一种是通过brew安装,一种是手动安装,这里笔者选择了后者,搭建步骤具体如下:(1)下载安装包,go安装包下载地址(2)将下载的安装包移至安装目录并解压tar -zxvf go1.16.5.darwin-amd64.tar.gz -C .(3)配置环境变量在.bash_profile文件中添加以下内容并使用source命令使之生效//go项目的工作路径,该目录需要自建,并且需要在该目录下新建src、pkg以及bin文件夹expor原创 2021-06-17 14:00:21 · 1992 阅读 · 1 评论