Go语言--结构体struct

结构

  1. Go语言通过 结构体struct 和 接口interface 来实现 面向对象编程oop 的。

  2. 结构体的成员可以是任何类型,如

    普通类型、复合类型、函数、map、interface、struct等。

  3. 成员的首字母大写,则为公有成员,对外可见;

    首字母小写,则为私有成员,对外不可见。

  4. 声明与初始化:

    var stu1 Student  //值形式
    
    var stu2 *Student=&Student{}  //形式创建 
    //可简写成:stu2:=&Student{}
    
    var stu3 *Student=new(Student) //new函数创建
    //可简写成:stu3:=new(Student)
    
  5. struct是我们自定义的类型,不能和其他类型进行强制转换。

  6. struct没有构造函数,但是我们可以自己定义 ”构造函数“

  7. tag可以为结构体的成员添加说明或者标签,

    可通过反射Marshal与Unmarshal来获取数据。

  8. 结构体的匿名成员,没有名称。

    同一种类型匿名成员只允许最多存在一个。

  9. 继承:当结构体中的成员也是结构体式,则该结构就继承了其成员的这个结构体,并继承了其所有的方法和属性。而有多个结构体成员的时候就是多继承。

  10. 访问问题:当继承存在时,访问父结构中属性时可以用".",但是当子结构和父结构都存在相同字段的时候,对于相同的字段,只能使用:“子结构.父结构.字段”来访问父结构中的属性。

  11. 方法不可以重载,即对于一个类型只能有一个给名称的方法;

    但基于接收者类型,是可以重载的。

  12. 结构体中的方法:

    • 方法只能被其接收者调用
    • 接收者是指针时,方法可以改变接收者的值(或状态)。函数也能做到
    • 接收者和方法必须在同一个包内

Go语言--结构体struct

上一篇:JavaSE学习07——异常处理


下一篇:【算法与数据结构】栈的典型用法之一:括号匹配