美文网首页
Go语言之方法

Go语言之方法

作者: 测试探索 | 来源:发表于2020-06-03 08:25 被阅读0次
方法的概念

Go语言中同时有函数和方法,一个方法就是一个包含了接受者的函数,接受者可以是命名类型或者结构体类型的一个值或者一个指针,所有给定的类型的方法属于该类型的方法集
方法只是一个函数,它带有一个特殊的接收器类型,它是在func关键字和方法名之间编写的,接收器可以说struct类型或者非struct类型,接受方法可以在方法内部访问

对比函数

A意义:
  方法:某个类别的行为功能,需要制定的接受者调用
  函数:一段独立功能的代码,可以直接调用
B语法:
  方法:方法名可以相同,,只要接受者不同
  函数:命名不能冲突

func (t Type接受者) methodName方法名(parameter list参数列表)(return list返回值列表){
}

func funcName(parameter list)(return list){
}
package main

import "fmt"

func main(){

    w1 := Worker{name:"王二狗",age:18,sex:"男"}
    w1.work() //王二狗 在工作。。。

    w2 := &Worker{name:"Ruby",age:34,sex:"女"}
    fmt.Printf("%T\n",w2) //*main.Worker
    w2.work() //Ruby 在工作。。。

    w2.rest() //Ruby 在休息
    w1.rest() //王二狗 在休息

    w2.printInfo() //工人姓名:Ruby,工人年龄:34,工人性别:女
    c1 := Cat{color:"白色的",age:1}
    c1.printInfo() //猫咪颜色:白色的,猫咪年龄:1
}

//1.定义一个工人结构体
type Worker struct {  //w = w1
    //字段
    name string
    age int
    sex string
}

type Cat struct{
    color string
    age int
}

//2.定义行为方法
func (w Worker) work(){
    fmt.Println(w.name,"在工作。。。")
}

func (p *Worker) rest(){ //p=w2,p=w1的地址
    fmt.Println(p.name,"在休息")
}

func (p *Worker) printInfo(){
    fmt.Printf("工人姓名:%s,工人年龄:%d,工人性别:%s\n",p.name,p.age,p.sex)
}

func (p *Cat) printInfo(){
    fmt.Printf("猫咪颜色:%s,猫咪年龄:%d\n",p.color,p.age)
}

相关文章

  • Go语言之方法

    一. 方法 1.1 概述 带有接受者的函数,我们称为方法。本质上一个方法就是一个特殊类型关联的函数。go语言中就可...

  • Go语言之方法

    方法的概念 Go语言中同时有函数和方法,一个方法就是一个包含了接受者的函数,接受者可以是命名类型或者结构体类型的一...

  • 便捷golang开发

    go语言之旅:https://tour.go-zh.org/如何使用go编程:https://go-zh.org/...

  • Go语言之继承中的方法

  • 第04天(面对对象编程)_03

    11_方法的继承.go 12_方法的重写.go 13_方法值.go 14_方法表达式.go 15_接口的定义和实现.go

  • A Tour of Go - Go语言之旅

    Hello,世界 这是Go语言官方的一个简明入门教程,可以帮助我们快速入门Go语言:Go语言之旅[https://...

  • go语言之导入

    go语言学习,看的是官方的教程,对于计算机语言,自己有一些基础,学习起来也有经验可以借鉴,看懂不难,暂时抓一些“坑...

  • Go语言之“容器”

    1.Struct体现的Go的优雅 1.代码如下,可细细体会struct的魅力 2.程序运行结果: 3.尤其需要注意...

  • Go语言之import

    1. 相对路径 2. 绝对路径 上面展示了一些import常用的几种方式,但是还有一些特殊的import,让很多新...

  • Go语言之反射

    来自本人公众号:灰子学技术原文链接:https://mp.weixin.qq.com/s/SBqx0theCm-G...

网友评论

      本文标题:Go语言之方法

      本文链接:https://www.haomeiwen.com/subject/jxomzhtx.html