zoukankan      html  css  js  c++  java
  • Go语言的面向对象

    defer关键字

            

            

     Go的内置函数

            

            

            

            Go数组内存分析

             

            

            

           Go的切片内存分析

            

           

           

           

     Go用struct代替其他语言的class

            

             结构体按引用传递

                                

        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方法和函数的区别

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

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

        

          方法的值传递和引用传递

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

             

            

           跨包创建结构体实例

           

           继承

            

           

           接口

    package main
    import "fmt"
    
    //接口定义
    type SayHello interface{
        //声明没有实现的方法
        sayHello()
    }
    
    //接口的实现类
    type Chinese struct{}
    //实现接口的方法
    func (person Chinese) sayHello(){
        fmt.Println("你好")
    }
    
    //接口的实现类
    type American struct{}
    //实现接口的方法
    func (person American) sayHello(){
        fmt.Println("hello man")
    }
    
    
    //定义函数,接收接口结构体实例
    func greet(s SayHello){
       s.sayHello()
    }
    
    func main(){
      c := Chinese{}
      m := American{}
    
      greet(c)
      greet(m)
    }
    接口实例

       

           多态

              

             断言

              

  • 相关阅读:
    汇编四(习题)
    汇编子程序模块化(near&far)
    win10关闭防火墙
    python中numpy中的shape()的使用
    文件的拷贝linux命令
    python中的os.path.dirname(__file__)
    ubuntu系统下安装及查看opencv版本
    用git命令行克隆项目及出现failed解决方案
    ERROR: Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '
    记录CenterNet代码编译成功运行
  • 原文地址:https://www.cnblogs.com/yxh168/p/15241110.html
Copyright © 2011-2022 走看看