Go结构体基础学习 Go结构体基础学习

Go结构体基础学习

** 直接看示例代码和注释 **

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
go复制代码package main

import "fmt"

// Person 创建一个结构体
type Person struct {
name string
age int
gender string
}

func main() {
fmt.Println("im go .")
// 实例化结构体
// 第一种方法
var p Person
p.name = "canyon"
p.age = 24
p.gender = "男"
fmt.Printf("first method: 姓名: %v 年龄: %v 性别: %v\n", p.name, p.age, p.gender)

// 第二种方法
p2 := Person{}
p2.name = "张三"
p2.age = 18
p2.gender = "男不男"
fmt.Printf("second method: 姓名: %v 年龄: %v 性别: %v\n", p2.name, p2.age, p2.gender)

// 第三种方法: 直接赋值
p3 := Person{
name: "李四",
age: 19,
gender: "男",
}
fmt.Printf("third method: 姓名: %v 年龄: %v 性别: %v\n", p3.name, p3.age, p3.gender)
p4 := Person{
"王五", 20, "女吧",
}
fmt.Printf("third-2 method: 姓名: %v 年龄: %v 性别: %v\n", p4.name, p4.age, p4.gender)
fmt.Println("——————————————————————————————————")

// 创建结构体指针
var pp1 *Person
fmt.Print("pp1: ", pp1) //
fmt.Printf("%T\n", pp1)
// p3的内存地址赋值给pp1
pp1 = &p3
fmt.Printf("%T\n", pp1)
fmt.Printf("%p, %T\n", pp1, pp1)
fmt.Println("p3: ",p3)
// 这个指针存储的地址对应的数据
fmt.Println("指针存的数据: ", *pp1)
pp1.name = "李六" 等价于 (*pp1).name = "李六"
fmt.Println("指针存的数据: ", *pp1)
fmt.Println("p3的数据: ", p3)
}

本文转载自: 掘金

开发者博客 – 和开发相关的 这里全都有

0%