zoukankan      html  css  js  c++  java
  • 【GoLang】GoLang struct 使用

    代码示例:

    package main
    
    import "fmt"
    
    type Human struct {
        name   string
        age    int
        weight int
    }
    
    type Student struct {
        Human      // 匿名字段,那么默认Student就包含了Human的所有字段
        speciality string
    }
    
    func main() {
        // 我们初始化一个学生
        mark := Student{Human{"Mark", 25, 120}, "Computer Science"}
    
        // 我们访问相应的字段
        fmt.Println("His name is ", mark.name)
        fmt.Println("His age is ", mark.age)
        fmt.Println("His weight is ", mark.weight)
        fmt.Println("His speciality is ", mark.speciality)
        // 修改对应的备注信息
        mark.speciality = "AI"
        fmt.Println("Mark changed his speciality")
        fmt.Println("His speciality is ", mark.speciality)
        // 修改他的年龄信息
        fmt.Println("Mark become old")
        mark.age = 46
        fmt.Println("His age is", mark.age)
        // 修改他的体重信息
        fmt.Println("Mark is not an athlet anymore")
        mark.weight += 60
        fmt.Println("His weight is", mark.weight)
    
        mark.Human = Human{"aaa", 20, 123}
        mark.Human.age += 10
        fmt.Println(mark)
    }

    004.struct类型
    1 type声明新类型
    1.1 type testInt func(int) bool // 声明了一个函数类型
    1.2 type person struct //声明一个结构体类型
    1.3 struct与array一样是值类型,作为参数会copy完整数据; slice、map、channel等传递的是数据的内存地址
    2 初始化
    2.1 顺序初始化
    2.1.1 var p Person = Person{"aaa", 123}
    2.2 指定参数初始化
    2.2.1 p = Person{name: "test", age: 456}
    2.3 new指针初始化
    2.3.1 var pp *Person = new(Person)
    3 匿名访问
    3.1 组合关系的struct可以直接通过被继承字段访问
    3.2 也可以通过struct名称访问
    3.3 struct不仅仅能够将struct作为匿名字段、自定义类型、内置类型都可以作为匿名字段, 而且可以在相应的字段上面进行函数操作
    3.4 允许我们去重载通过匿名字段继承的一些字段, 当然如果我们想访问重载后对应匿名类型里面的字段,可以通过匿名字段名来访问
     
     
     
     
  • 相关阅读:
    Martix工作室考核题 —— 打印一个菱形
    Martix工作室考核题 —— 打印一个菱形
    Martix工作室考核题 —— 打印九九乘法表
    Martix工作室考核题 —— 打印九九乘法表
    Martix工作室考核题 —— 打印九九乘法表
    Martix工作室考核题 —— 201938 第三题
    Martix工作室考核题 —— 201938 第三题
    Martix工作室考核题 —— 201938 第三题
    Martix工作室考核题 —— 201938 第一题
    fiddler模拟发送post请求
  • 原文地址:https://www.cnblogs.com/junneyang/p/6100891.html
Copyright © 2011-2022 走看看