去语言中普通函数与方法有什么区别

  介绍

这篇文章主要介绍去语言中普通函数与方法有什么区别,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

区别:对于普通函数,接收者为值类型时,不能将指针类型的数据直接传递,反之亦然;对于方法,接收者为值类型时,可以直接用指针类型的变量调用方法,反过来同样也可以。

<强>去语言中普通函数与方法的区别

1,对于普通函数,接收者为值类型时,不能将指针类型的数据直接传递,反之亦然。

2,对于方法(如结构体的方法),接收者为值类型时,可以直接用指针类型的变量调用方法,反过来同样也可以。

以下为简单示例:

包结构//普通函数与方法的区别(在接收者分别为值类型和指针类型的时候)//日期:2014-4-3 10:00:07      导入(   “fmt"   )      func StructTest06Base () {   structTest0601 ()   structTest0602 ()   }//1 .普通函数//接收值类型参数的函数   func valueIntTest int (int) {   返回一个+ 10   }//接收指针类型参数的函数   func pointerIntTest int (* int) {   返回* + 10   }      func structTest0601 () {   答:=2   fmt.Println (“valueIntTest:“valueIntTest (a))//函数的参数为值类型,则不能直接将指针作为参数传递//fmt.Println (“valueIntTest:“valueIntTest (,))//编译错误:不能使用,(类型* int)作为函数参数类型int      b:=5   fmt.Println (“pointerIntTest:“pointerIntTest(和b))//同样,当函数的参数为指针类型时,也不能直接将值类型作为参数传递//fmt.Println (“pointerIntTest:“pointerIntTest (b))//编译错误:不能使用b(类型int) * int类型的函数参数   }//2 .方法   PersonD struct类型{   int id   名称字符串   }//接收者为值类型   func (p PersonD) valueShowName () {   fmt.Println (p.name)   }//接收者为指针类型   func (p * PersonD) pointShowName () {   fmt.Println (p.name)   }      func structTest0602 () {//值类型调用方法   personValue:=PersonD{101年“Smith"}   personValue.valueShowName ()   personValue.pointShowName ()//指针类型调用方法   personPointer:=, PersonD{102年,“保罗Tony"}   personPointer.valueShowName ()   personPointer.pointShowName ()//与普通函数不同,接收者为指针类型和值类型的方法,指针类型和值类型的变量均可相互调用   }

以上是“语言中普通函数与方法有什么区别”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

去语言中普通函数与方法有什么区别