Golang 函数与方法
在这篇文章中,我们将学习Golang中的函数和方法之间有什么异同点。我们将分别从它们开始,然后我们将看到一个使用它们的例子。
让我们从函数开始,看看它们是什么以及如何在Golang中使用它们。
Golang中的函数
Golang中的函数是一个代码块,它接受一些参数作为输入并产生一些输出。如果我们向一个函数传递相同的输入,它将产生相同的输出。
例子1
在这个例子中,我们正在创建一个函数,然后从主函数中调用它。
package main
import (
"fmt"
)
func height(x, y int) int {
return 2 * (x + y)
}
func main() {
x, y := 10, 20
res := height(x, y)
fmt.Println("The result is:", res)
}
在上面的代码中,我们声明了一个名为 height() 的函数,它有两个定义参数,分别是 x 和 y 。
输出
如果我们用 go run main.go 命令运行上述代码,我们将得到以下输出。
The result is: 60
Golang中的方法
Golang中的方法就像一个函数,需要一个接收器来调用。简单地说,方法是一个定义在 结构 类型上的函数。
例子2
让我们考虑一个例子,我们将创建一个方法,然后使用它。
package main
import (
"fmt"
)
type shape struct {
x int
y int
}
func (s shape) height() int {
return 2 * (s.x + s.y)
}
func main() {
res1 := shape{x: 10, y: 20}
fmt.Println("The result1 is:", res1.height())
}
输出
如果我们用 go run main.go 命令运行上述代码,那么我们将得到以下输出。
The result1 is: 60
Golang中的函数和方法的区别
从上面的例子中可以看出函数和方法的明显区别。主要的区别在于方法中的 接收器 ,而函数中则没有。
另一个区别在于我们如何执行它们,比如在我们调用它们的时候。
请看下面的代码片断。
res1 := shape{x: 10, y: 20}// for methods
res := height(x, y) // for functions