Go接口:nil接口为什么不等于nil? 本文主要内容:深入了解接口类型的运行时表示层。 目录 Go接口:nil接口为什么不等于nil? 一、Go接口的地位 二、接口的静态特性与动态特性 2.1接口的静态特性与动态特性介绍 2.2“动静皆备”的特性的好处 三、nilerror值!=nil 四、接口类型变量的内部表示 第一种:nil接口变量 第二种:空接口类型变量 第三种:非空接口类型变量 第四种:空接口类型变量与非空接口类型变量的等值比较 五、输出接口类型变量内部表示的详细信息 六、接口类型的装箱(boxing)原理 七、小结 一、Go接口的地位 Go语言核心团...
Go接口-契约介绍 目录 Go接口-契约介绍 一、接口基本介绍 1.1接口类型介绍 1.2为什么要使用接口 1.3面向接口编程 1.4接口的定义 二、空接口 2.1空接口的定义 2.2空接口的应用 2.2.1空接口作为函数的参数 2.2.2空接口作为map的值 2.3接口类型变量 2.4类型断言 三、尽量定义“小接口” 3.1“小接口”介绍 3.2小接口优势 3.2.1第一点:接口越小,抽象程度越高 3.2.2第二点:小接口易于实现和测试 四、定义小接口,可以遵循的几点 4.1首先,别管接口大小,先抽象出接口 4.2第二,将大接口拆分为小接口 4.3最后,我们...
Go类型嵌入介绍和使用类型嵌入模拟实现“继承” 目录 Go类型嵌入介绍和使用类型嵌入模拟实现“继承” 一、独立的自定义类型 二、继承 三、类型嵌入 3.1什么是类型嵌入 四、接口类型的类型嵌入 4.1接口类型的类型嵌入介绍 4.2一个小案例 五、结构体类型的类型嵌入 5.1结构体类型的类型嵌入介绍 5.2小案例 六、“实现继承”的原理 七、类型嵌入与方法集合 7.1结构体类型中嵌入接口类型 7.2结构体类型中嵌入结构体类型 八、defined类型与alias类型是否可以实现方法集合的“继承”? 8.1defined类型与alias类型的方法集合 九、小结 ...
Go方法介绍,理解“方法”的本质 目录 Go方法介绍,理解“方法”的本质 一、认识Go方法 1.1基本介绍 1.2声明 1.2.1引入 1.2.2一般声明形式 1.2.3receiver参数作用域 1.2.4receiver参数的基类型约束 1.2.5方法声明的位置约束 1.2.6如何使用方法 二、方法的本质 三、巧解难题 一、认识Go方法 1.1基本介绍 我们知道,Go语言从设计伊始,就不支持经典的面向对象语法元素,比如类、对象、继承,等等,但Go语言仍保留了名为“方法(method)”的语法元素。当然,Go语言中的方法和面向对象中的方法并不是一样的。Go引入方法这一...
Go方法集合与选择receiver类型 目录 Go方法集合与选择receiver类型 一、receiver参数类型对Go方法的影响 二、选择receiver参数类型原则 2.1选择receiver参数类型的第一个原则 2.2选择receiver参数类型的第二个原则 三、方法集合(MethodSet) 3.1引入 3.2类型的方法集合 四、选择receiver参数类型的第三个原则 五、小结 一、receiver参数类型对Go方法的影响 要想为receiver参数选出合理的类型,我们先要了解不同的receiver参数类型会对Go方法产生怎样的影响。其实,Go方法实质上是...
一、介绍 01.Go语言的前生今世 二、开发环境搭建 01.Go语言开发环境搭建 三、初识GO语言 01.Go多版本管理工具 02.第一个Go程序“hello,world“与main函数 03.Go常用命令介绍 04.Go项目代码布局 05.探索GO项目依赖包管理与GoModule常规操作 四、GO基础语法基本数据类型 01.Go基础之变量和常量 02.Go基本数据类型和string类型介绍 03.Go语言基础之基本运算符 五、复合类型 01.Go基础之指针介绍 02.Go复合数据类型之结构体与自定义类型 03.Go语言基础之数组介绍以及常用操作 04.Go基础之切片介绍以及常用操作 07.G...