Golang 中的函数与方法

go programmingserver side programmingprogramming更新于 2025/4/10 18:52:17

在本文中,我们将了解 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() 的函数,它有两个定义的参数,分别为 xy

输出

如果我们使用命令 go run main.go 运行上面的代码,那么我们将得到以下输出。

结果是:60

Golang 中的方法

Golang 中的方法就像一个需要接收器来调用的函数。简单来说,方法就是在 struct 类型上定义的函数。

示例 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("result1 为:", res1.height())
}

输出

如果我们使用命令 go run main.go 运行上述代码,我们将得到以下输出。

result1 为:60

Golang 中函数和方法之间的差异

可以通过上面显示的函数和方法的示例来解释显着的差异。主要区别在于接收器,它存在于方法中而不是函数中。

另一个区别在于我们如何执行它们,例如在我们调用它们的情况下。

考虑下面显示的代码片段。

res1 := shape{x: 10, y: 20}// 用于方法
res := height(x, y) // 用于函数

相关文章