kubernetes 的源码解读(一)


kubernetes 的源码解读(一)

Golang 语法 —— 方法声明

四个部分:
? 关键字 func
? 方法名字:首字母是否大写决定了作用域,(首字母大写为公共,首字母小写为私有)
? 参数列表:[]
? 返回列表: [type]

Golang 语法

? import 关键字引入别的包
? 如何声明一个方法
? 方法可以作为参数
? fmt 可以用于输出数据,格式化字符串
? string 子串可以用 [start:end] 来 获得
? *表示指针

Golang 语法 —— 变量声明

? 首字符是否大写控制了访问性:大写包外 可访问;
? 驼峰命名
? golang 支持类型推断,所以大部分情况 下我们可以省略类型
? var
? 局部变量
? 包变量
? 块声明
? const —— 常量,和 var 用法一样
? 字符串和基本类型(不含数组)
? 必须显式初始化
? 不能修改
? 常量有些人用驼峰,有些人全大写,没有统一的标准

Golang 语法 —— 格式化占位符

? fmt 包 有完整的说明
? 掌握常用的:%s, %d, %v, %+v, %#v
? 不仅仅是 fmt的调用,所有格式化字符 串的 API 都可以用


Go 语言的基础数据类型

Go语言中的数组和切片

?[]byte是切片 ---数组
?[10]byte是数组——即数组是有确切长度的 --- 切片

共性:
1.都使用data[i]来索引数据
2.使用len(data)来获得长度(已有元素个数)
3.使用cap(data)来获得容量
注意:数组的长度和容量是一致的

golang语法——如何理解切片?

最直观的对比:切片是 ArrayList,即基于数组的List的实现,切片的底层也是数组
区别:
1.切片操作是有限的,不支持随机增删(即没有add,delete方法,需要自己写代码)
2.只有append操作
3.切片支持子切片操作,和原本切片是共享底层数组

Go 语言中的各种循环和 数组的一些例子