zoukankan      html  css  js  c++  java
  • Golang之struct

    1.用来定义复杂数据结构

    2.struct里面可以包含多个字段(属性)

    3.struct类型可以定义方法,注意和函数的区分。

    4.struct类型是值类型

    5.struct类型可以嵌套

    6.Go语言没有class类型,只有struct类型

    package main
    
    import "fmt"
    
    //声明结构体
    type Student struct {
        Name  string
        Age   int
        Score int
    }
    
    func main() {
        //struct字段访问,使用“点”访问
        var stu Student
        stu.Name = "yuchao"
        stu.Age = 18
        stu.Score = 99
        fmt.Printf("name=%s age=%d scrore=%d", stu.Name, stu.Age, stu.Score)
    }

    定义struct的三种形式:

    package main
    
    import "fmt"
    
    //声明结构体
    //字段名和函数名一样,首字母大写,在包外可以访问
    type Student struct {
        Name  string
        Age   int
        Score float32
    }
    
    func main() {
        //struct字段访问,使用“点”访问
        var stu Student
        //var stu *Student = new(Student)
        //var stu *Student = &Student{ }
        stu.Name = "yuchao"
        stu.Age = 18
        stu.Score = 99
        //fmt.Println(stu) //默认结构 {yuchao 18 99.1}
        //fmt.Printf("name=%s age=%d scrore=%d", stu.Name, stu.Age, stu.Score)
    
        var stu1 *Student = &Student{
            Age:  20,
            Name: "chao",
        }
    
        var stu3 = Student{
            Age:  20,
            Name: "hua",
        }
    
        fmt.Println(stu1)
        fmt.Println(stu3.Name)
        fmt.Printf("Name:%p
    ", &stu.Name)
        fmt.Printf("age:%p
    ", &stu.Age)
        fmt.Printf("score:%p
    ", &stu.Score)
    }
    定义结构体
    var stu Student
    var stu *Student = new(Student)
    var stu *Student = &Student{ }

    struct的内存布局,struct中的所有字段在内存是连续的,布局如下:

  • 相关阅读:
    将word转化为swf 进行如同百度文库的般阅读
    最大子数组问题——编程珠玑第八章
    为什么静态成员必须在类外初始化
    C++初始化列表
    异步消息总线hornetq学习-03客户端连接hornet进行jms消息的收发-非jndi方式连接
    [PLL][PM]锁相环模拟相位解调
    insertion sort
    SRM 581 D2 L2:SurveillanceSystem,重叠度
    JQuery(下)
    Ajax
  • 原文地址:https://www.cnblogs.com/pyyu/p/8207224.html
Copyright © 2011-2022 走看看