Golang中的方法,以及接口实现

一、在Golang中,函数和方法是不一样的,函数没有接收者,而方法有接收者,接收者是某个结构体类型的变量。
其中方法的接受者有两种:
value receiver(值接收者,只能获取结构体变量的属性),
pointer receiver(指针接收者,还可以通过方法参数改变结构体变量的属性)
  方法:(接收者可以理解为调用该方法的结构体实例,即调用者)
  1. 值接受者(和值传递概念相同,只是值拷贝给接收者参数)
    func (valueReceiver receiverType) funcName(params type) returnValues type{
    }

  2. 指针接收者(接收者是结构体类型变量指针,即变量的地址,所以可以改变变量的属性值)
    func (pointerReceiver *receiverType) funcName(params type) returnValues type{
    }

    注:方法常用在实现接口方法时。

  函数:

       func funcName(params type) returnValues type{
       }

有地方解释:pointer receiver的方法接收者既可以传值也可以传指针,事实上pointer receiver的方法只是将receiver.funcName()自动转换为(&receiver).funcName(),同样地,把value receiver 指向变量。这点官方的go有说明,go编译器自动取了变量的地址。

下面通过几个例子说明区别和细节:

package main

import "fmt"

type Stu struct {
   
}

func (s Stu) pt1(str string){
    //值接受者
	fmt.Println(str)
}
func (s *Stu) pt2(str string){
   	//指针接受者
	fmt.Println("func pt2 ",s)
	fmt.Println(str)
}
func main() {
   
	s1 := new
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Golang是一种编程语言,具备强大的接口特性。在Golang接口是一种规定了对象必须遵循的行为规范。通过接口,我们可以定义一组方法的集合,任何实现了这些方法类型都被视为实现了该接口接口实现是指一个类型声明自己遵循了某个接口实现一个接口类型,需要实现接口定义的所有方法实现接口类型不需要显式声明实现了该接口,只要实现接口定义的方法即可。这种方式称为隐式接口实现接口对象是指一个接口类型的变量或参数,可以指向满足该接口的任何具体类型的对象。通过接口对象,我们可以调用接口定义的方法,而不需要关心具体对象是哪种类型。 使用接口的好处是可以将接口作为一个统一的契约,使得不同类型的对象可以通过实现相同的接口实现类型的替换和灵活的设计。接口可以实现代码的重用,并且松耦合,提高代码的可维护性和可测试性。 在实际应用,我们可以先定义接口,然后根据接口的行为规范来编写具体类型实现接口对象可以根据需要替换为不同的具体类型对象,实现了面向接口编程的思想。 总结来说,Golang接口实现是指类型声明自己遵循了某个接口实现接口定义的方法接口对象是指可以指向满足该接口的任何具体类型的对象。通过接口,我们可以实现代码的灵活和重用,使得不同类型的对象可以通过实现相同的接口来进行类型的替换。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值