Go语言的面向对象

defer关键字

        Go语言的面向对象

        Go语言的面向对象

 Go的内置函数

        Go语言的面向对象

        Go语言的面向对象

        Go语言的面向对象

        Go数组内存分析

         Go语言的面向对象

        Go语言的面向对象

        Go语言的面向对象

       Go的切片内存分析

        Go语言的面向对象

       Go语言的面向对象

       Go语言的面向对象

       Go语言的面向对象

 Go用struct代替其他语言的class

        Go语言的面向对象

         结构体按引用传递

         Go语言的面向对象                   Go语言的面向对象

    Go创建结构体实例的4种方式

        1. 第一种方式

             var t1 Teacher 

              t1.Name="a"

        2.第二种方式

             var t2 Teacher = Teacher{"Aaa",445,"asdfasdf"}

       3.第三种方式

            var t *Teacher = new(Teacher)   

            (*t).Name="name" 

             t.Age=100   简写,Go编译器自动优化成*t

        4.第四种方式

             var t8 *Teacher = &Teacher{}

             t8.Name ="Abc"  Go编译器自动优化成*t8

             t8.Age = 100

type Teacher struct{
    Name string
    Age int
    School string
}

func main(){

    //方式1
    var t1 Teacher = Teacher{}
    fmt.Println(t1)
    t1.Name = "zss"
    t1.Age =  32
  

  //方式2
  var t2 Teacher = Teacher{"abc",38,"ccc"}
  fmt.Println(t2)


  //方式3
  var t3 *Teacher = new(Teacher)
  (*t3).Name ="msb"
  (*t3).Age = 100
  fmt.Println(t3.Name)

  //方式4
  var t4 *Teacher = &Teacher{"name",100,"school"}
  fmt.Println(t4)
  fmt.Println(t4.Name)

}

 Go语言的面向对象

 Go方法和函数的区别

    func hanshu(函数参数)(函数返回值) { 函数体 }

    func (t Type) fangfa(方法参数)(方法返回值){  方法体 }

    Go语言的面向对象

      方法的值传递和引用传递

         1.方法中的结构体实例对象默认是值拷贝,在方法中对实例进行修改不会影响到原来的实例对象。如果需要在方法中对原对象进行修改,就必须传递指针类型的对象

         Go语言的面向对象

        Go语言的面向对象

       跨包创建结构体实例

       Go语言的面向对象

       继承

        Go语言的面向对象

       Go语言的面向对象

 

上一篇:【转】Innodb中的事务隔离级别和锁的关系


下一篇:c++ 结构体 3名教师 5名学生信息