本文摘自php中文网,作者V,侵删。
go语言中函数与方法的区别:对于普通函数,接收者为值类型时,不能将指针类型的数据直接传递;对于方法,接收者为值类型时,可以直接用指针类型的变量调用方法。
本文操作环境:Windows10系统、Go 1.11.2、thinkpad t480电脑。
函数与方法的区别官方解释:一个方法就是一个包含了接收者的函数。接收者可以是命名类型或者结构体类型的一个值或者是一个指针。所有给定类型的方法属于该类型的方法集。
区别:
1、对于普通函数:接收者(函数参数)为值类型时,不能将指针类型的数据直接传递,反之亦然。
1 2 3 |
|
2、对于方法(如struct方法): 接收者为值类型时,可以直接用指针类型的变量调用方法,反之亦然
1 2 3 |
|
可以看到方法和函数的区别,方法在func关键字后是接收者而不是函数名,接收者可以是自己定义的一个类型,这个类型可以是struct,interface,甚至我们可以重定义基本数据类型。
Go函数
函数是基本的代码块,用于执行一个任务。
Go 语言最少有个 main() 函数。
你可以通过函数来划分不同功能,逻辑上每个函数执行的是指定的任务。
函数声明告诉了编译器函数的名称,返回类型,和参数。
Go 函数可以返回多个值。
Go 语言标准库提供了多种可动用的内置的函数。例如,len() 函数可以接受不同类型参数并返回该类型的长度。如果我们传入 的是字符串则返回字符串的长度,如果传入的是数组,则返回数组中包含的元素个数。
1、值传递:值传递是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。
2、引用传递:引用传递是指在调用函数时将实际参数的地址传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。
Go方法
Go 语言中同时有函数和方法。一个方法就是一个包含了接受者的函数,接受者可以是命名类型或者结构体类型的一个值或者是一个指针。所有给定类型的方法属于该类型的方法集。
下面定义一个结构体类型和该类型的一个方法:
1 2 3 4 5 6 7 8 |
|
(学习视频分享:编程入门)
以上代码执行结果为:
1 |
|
例子
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
|
相关推荐:golang教程
以上就是go语言中函数与方法有什么区别的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
更多相关阅读请进入《Go语言》频道 >>
Go语言101
一个与时俱进的Go编程知识库。