go内置数据类型

47 阅读1分钟
  1. 内置数据类型 3.1 指针类型 3.1.1 定义指针 var a int = 10 var p *int = &a pp := &a 1 2 3 3.1.2 空指针 默认值,空指针的值为 nil 。 3.1.3 访问指针 使用 *ptr 访问值,地址无法访问将产生运行错误。 结构体使用 name.attr 访问元素,在 Golang 中可以使用 ptr.attr 通过指针访问元素(Clang 是 ptr->attr)。 3.2 结构体类型 3.2.1 定义结构体 具名结构体 type Book struct { name string author string } var a Book // 定义默认结构体 var b = Book{"Golang 入门经典", "Unknown"} // 全部初始化 var c = Book{name: "C++ 入门指南"} // 局部初始化 d := Book{name: "鸟哥的 Linux 私房菜"} // 使用 := var e *Book = new(Book) // 使用指针 1 2 3 4 5 6 7 8 9 字段匿名 type Book struct { string string } var a Book = Book{"Golang 入门经典", "Unknown"} 1 2 3 4 5 结构体匿名 var a = struct{ name string author string }{"Golang 入门经典", "Unknown"} 1 2 3 4 两种匿名不可同时使用。 3.2.2 访问结构体 var a Book = Book{"Golang 入门经典", "Unknown"} var p *Book = &a fmt.Println(a.name, a.author) fmt.Println(p.name, p.author) // 结构体指针直接使用 ptr.attr 访问 1 2 3 4 3.2.4 类型转换 如果两个结构体具有完全相同的定义,它们可以进行显式类型转换。 3.2.5 嵌套与继承 结构体嵌套将一个结构体作为新结构体的一个字段。 type Library struct { name string books []Book } 1 2 3 4 结构体继承将一个结构体的字段和方法引入新结构体。结构体的方法后面会提及。 type ChildBook struct { fitAge int Book }