Go 隐式接口的特点 只要实现了接口的全部方法,就是自动实现接口; 可以在不修改代码的情况下抽象出新的接口; 一个简单的接口示例 一个接口的值的底层表示 接口数据使用runtime.iface表示; iface记录了数据的地址; iface记录了接口的类型信息和实现的方法(可以用于类型断言); 类型断言 类型断言是一个使用在接口值上的操作; 可以将接口值转换
2022年7月18日
在 Go 语言中有一些基本的数据类型,如
string、int、浮点型、布尔等数据类型,Go 语言中可以使用type关键字来定义自定义类型。
自定义类型是定义了一个全新的类型。我们可以基于内置的基本类型定义,也可以通过struct定义
// 将MyInt定义为int类型
type MyInt int
通过type关键字的定义,MyInt就是一种新的类型,它具有int的特性
var x MyInt = 100
fmt.Printf("x=%T\n", x) // x:main.MyInt
自定义类型是程序员根据自己的需要创造的新类型
type NewInt = int
这个实际上本质还是原来的int无非就是起了一个小名,别名。比如类型rune其实就是int32,还有byte就是uint8类型。
实际上就是为了方便理解而存在。
var x NewInt = 100
fmt.Printf("x=%T\n", x) // x:int
类型别名只在源文件中生效,编译完之后,还是会以被替换成原始的
int类型