zoukankan      html  css  js  c++  java
  • C#/JAVA 程序员转GO/GOLANG程序员笔记大全(DAY 03)

    go语言当中,没有 class 的概念,那么面向对象的编程思想如何展现呢,go语言中对结构体的使用 struct。

    package main
    
    import "fmt"
    
    type Person struct {
        name string  
        sex byte
        age int 
    }
    
    // 带有接收者的函数叫方法
    func (tmp Person) PrintInfo() {
        fmt.Println("tmp = ", tmp)
    }
    
    // 通过一个函数,给成员赋值
    func (p *Person) SetInfo(n string, s byte, a int) {
        p.name = n
        p.sex = s
        p.age = a
    }
    
    func main() {
        // 定义同时初始化
        p := Person {"loong", 'm', 18}
        p.PrintInfo()
        
        // 定义一个结构体变量
        var p2 Person
        (&p2).SetInfo("loong", 'm', 18)
        p2.PrintIn()    
        
        // 另一种写法
        p3 := &Person {"loong", 'm', 18}
        p3.PrintInfo()
    }

    方法总是绑定对象实例,并隐式将实例作为第一参数(receiver),方法的语法如下:
    func (receiver ReceiverType) funcName(parameters) (result) {
      // .....
    }

    *、参数 receiver 可任意命名。如方法中未曾使用,可以忽略参数名。
    *、参数 receiver 类型可以是 T 或 *T。基类型 T 不能是接口或指针。
    *、不支持重载方法,也就是说,不能定义名字相同但是不同参数的方法。

  • 相关阅读:
    前端:js
    HTML和CSS总结
    前端二:CSS
    前端一:走进HTML
    SQLALchemy(连表)、paramiko
    上下文管理、线程池、redis订阅和发布
    P4234 最小差值生成树
    P2387 [NOI2014]魔法森林
    P3721 [AH2017/HNOI2017]单旋
    P4271 [USACO18FEB]New Barns
  • 原文地址:https://www.cnblogs.com/loongsoft/p/9356215.html
Copyright © 2011-2022 走看看