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 允许我们去重载通过匿名字段继承的一些字段, 当然如果我们想访问重载后对应匿名类型里面的字段,可以通过匿名字段名来访问
     
     
     
     
  • 相关阅读:
     sublime text3快速生成html头部信息(转)
    电脑同时安装Python2和Python3以及virtualenvwrapper(转)
    在windows下使用多版本Python安装相应的虚拟开发环境
    win10+wget 收藏
    关于OS_PRIO_SELF的说明
    select菜单实现二级联动
    HeadFirst设计模式笔记:(六)命令模式 —— 封装调用
    rnqoj-57-找啊找啊找GF-二维背包
    UILable:显示多种颜色的方法
    动态规划晋级——POJ 3254 Corn Fields【状压DP】
  • 原文地址:https://www.cnblogs.com/junneyang/p/6100891.html
Copyright © 2011-2022 走看看