介绍
这篇文章主要介绍去语言中普通函数与方法有什么区别,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
区别:对于普通函数,接收者为值类型时,不能将指针类型的数据直接传递,反之亦然;对于方法,接收者为值类型时,可以直接用指针类型的变量调用方法,反过来同样也可以。
引用><强>去语言中普通函数与方法的区别强>
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 ()//与普通函数不同,接收者为指针类型和值类型的方法,指针类型和值类型的变量均可相互调用 }以上是“语言中普通函数与方法有什么区别”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
去语言中普通函数与方法有什么区别