注:本文是《Go语言核心编程》(李文塔/著)个人读书笔记 命名类型(Named Type) 类型可以通过标识符来表示,这种类型称为命名类型。Go 语言的基本类型中有20个预声明简单类型都是命名类型。 未命名类型 (Unamed Type) 一个类型由预声明类型、关键字和操作符组合而成,这个类型称为未命名类型。未命名类 型又称为类型字面量( Type Literal ) 数组(array) 、切片(slice) 、字典(map) 、通道(channel) 、指针(pointer) 、函数字面量(function) 、结构(struct) 和接口(interface) 都属于类型字面量, 也都是未命名类型 。
两个命名类型是否相同: 1两个命名类型相同的条件是两个类型声明的语句完全相同。 2命名类型和未命名类型永远不相同。 3两个未命名类型相同的条件是它们的类型声明宇面量的结构相同,井且内部元素的类 型相同。 4 通过类型别名语句声明的两个类型相同。
由于 Go 是强类型的语言,如果不满足自动转换的条件,则必须进行强制类型转换 。任意两个不相干的类型如果进行强制转换,则必须符合一定的规则。强制类型的语法格式:var a T = (T) (b),使用括号将类型和要转换的变量或表达式的值括起来 。
语法格式
type newtype oldtype
1字段顺序进行初始化,缺点是一旦结构修改,就得修改初始化语句 2指定字段进行初始化 3new创建内置函数,字段默认初始化为其类型的零值 4 一次初始化一个字段,结构化编程思维。 5构造函数初始化
方法是特殊类型的函数,将对象实例和指针作为函数的第一个参数,这个对象实例或者指针成为方法的接收者reciver。
//类型方法接收者是值类型
func (t TypeName) MethodName (ParamList ) (Returnlist) //method body{
//类型型方法接收者是指针
func(t *TypeName) MethodName (ParamList) (Returnlist) //method body
struct 可以嵌入任意其他类型的字段 struct 可以嵌套自身的指针类型字段