在Go语言中,函数和方法不太一样,有明确的概念区分。其他语言中,比如Java,一般来说,函数就是方法,方法就是函数。所以本节我旨在帮助大家理解Go语言中函数和方法的异同。
开始之前我们先系统学习一下函数和方法。
函数
Go语言和C语言一样也有函数的概念, Go语言中函数除了定义格式和不用声明以外,其它方面几乎和C语言一模一样
//函数定义
func 函数名称(形参列表)(返回值列表){
函数体;
}
//无参数无返回值函数
func say() {
fmt.Println("Hello World!!!")
}
//参数无返回值函数
func say(name string) {
fmt.Println("Hello ", name)
}
//无参数有返回值函数
func sum() int { // 只有一个返回值时,返回值列表的()可以省略
return 1 + 1
}
//有参数有返回值函数
func sum(a int, b int) int {
return a + b
}
Go函数与C语言函数的区别
//Go语言中可以给函数的返回值指定名称
// 给返回值指定了一个名称叫做res, return时会自动将函数体内部res作为返回值
// 其实本质就是提前定义了一个局部变量res, 在函数体中使用的res就是这个局部变量,返回的也是这个局部变量
func sum() (res int) {
res = 1 + 1
return
}
//Go语言中的函数允许有多个返回值函数
func calculate(a int, b int) (sum int, sub int) {
sum = a + b
sub = a - b
return
}
//相邻同类型形参OR返回值类型可以合并, 可以将数据类型写到最后一个同类型形参OR返回值后面
// a, b都是int类型, 所以只需要在b后面添加int即可
func calculate(a, b int) (sum,

本文探讨Go语言中函数与方法的区别,包括Go函数与C语言函数的差异、匿名函数、闭包的定义和使用,以及方法的概念,通过示例解释了方法如何赋予结构体行为。总结了函数和方法在定义、调用、重名等方面的异同。
最低0.47元/天 解锁文章

2805

被折叠的 条评论
为什么被折叠?



