Golang面向对象相关概念-Golang夯实基础第八天
面向对象 匿名字段 见匿名嵌套结构体 接口 interface 定义对象方法的规范,只定义规范,具体实现由对应的对象实现,在 Go1.18 之前,接口只定义方法,只有方法集(method set),在 Go1.18 版本出现了泛型,接口同时也转变为了类型集(type Set),可以用于定义类型。 在这里先按照 Go1.18 之前的版本进行学习归纳,在后面再对泛型进行学习之后,再学习归纳接口对类型的
面向对象 匿名字段 见匿名嵌套结构体 接口 interface 定义对象方法的规范,只定义规范,具体实现由对应的对象实现,在 Go1.18 之前,接口只定义方法,只有方法集(method set),在 Go1.18 版本出现了泛型,接口同时也转变为了类型集(type Set),可以用于定义类型。 在这里先按照 Go1.18 之前的版本进行学习归纳,在后面再对泛型进行学习之后,再学习归纳接口对类型的
异常处理 Go 没有结构化的异常,只能使用 panic 内置函数抛出异常,recover 内置函数在 defer 中捕获异常,然后程序正常运行。 panic func panic(v any) 抛出异常的内置函数; 可以在任何地方调用; recover func recover() any 捕获 panicking 行为的函数; 可以在任何地方定义,但是只有在 defer 定义的
循环语句 for 语法 Go 语言 for 循环有三种形式 for init; condition ; post {} for condition {} for {} 第一种形式和其他语言一样 第二种形式相当于其他语言的 while 循环 第三者形式相当于第二种形式为关系表达式为 true 的结果,无限循环 示例 第一种 func Test_D
条件语句 if 规范 条件表达式的括号省略,如果写上了,保存之后 Go 会自动纠正规范,去掉括号 条件表达式定义的变量,在执行体内可以访问 条件表达式可以多条语句,使用分号区分,取最后一条作为判断语句 var a int = 0 func IncOne() int { a++ return a } func Test_D_0(t *testing.T) {
指针 指针是存储变量地址值的一种指针变量 指针的概念并非 Go 语言所独有的,C/C++ 也有指针,但是 Go 语言的指针,在正常情况下,是不允许编译和运算的。 使用 & 取变量的地址值,使用 * 取指针指向的地址值所存储的值,& 和 * 是一对互补的操作符 func Test_C_0(t *testing.T) { a := 100 b := &a c :
nil 空值指针 类型转换 Go 语言只有强制类型转换,没有隐式转换 基本格式: T(表达式) T表示对应要转为的数据类型 func Test_B_11(t *testing.T) { var a int = 10 var b string = "ABC" var c string = "哇哈哈WHH" a2 := float32(a) b2 := []byte(b)