zoukankan      html  css  js  c++  java
  • go语言从例子开始之Example18_1.结构体中定义方法

    Go 支持在结构体类型中定义方法 。

    Example:

    package main
    
    import "fmt"
    
    
    type product struct{
        name string
        number int
    }
    
    //为结构体定义两个方法。getname() getnumber()
    
    //(r *product)为product结构体指针类型接收器
    func (r *product) getname() string{
        return r.name
    }
    
    //定义方法时,不指定结构体指针。引用时指定也可。
    //返回值注意类型是int。
    func (r product) getnumber() int{
        return 1*r.number
    }
    
    
    func main(){
        t := product{name: "yhleng", number: 50}
        t.name = "aaaa"
        fmt.Println("getname:", t.getname())
        fmt.Println("getnumber", t.getnumber())
    
        //自动处理值和指针之间转化。用指针调用方法来避免在指针调用时产生一个拷贝。或者方法能够改变接收的数据。
        ps := &t
    
        //改变接收的数据。
        ps.name = "zkkkk"
        fmt.Println("getname:", ps.getname())
        fmt.Println("getnumber:", ps.getnumber())
    }

    Result:

    $ go run example.go
    getname: aaaa
    getnumber 50
    getname: zkkkk
    getnumber: 50

    坐标: 上一个例子    下一个例子

  • 相关阅读:
    [APIO2014]序列分割
    [HNOI2014]世界树
    [THUWC2017]随机二分图
    快乐游戏鸡
    [SHOI2014]三叉神经树
    带花树学习笔记
    最小树形图——朱刘算法学习笔记
    【WC2018】即时战略
    [HNOI2015]接水果
    [HAOI2018]染色
  • 原文地址:https://www.cnblogs.com/yhleng/p/11730769.html
Copyright © 2011-2022 走看看