Go语言中的函数与方法


本文将学习Go语言中函数和方法的异同。我们将分别介绍两者,然后展示一个同时使用两者的示例。

让我们从函数开始,了解它们是什么以及如何在Go语言中使用它们。

Go语言中的函数

Go语言中的函数是一段代码块,它接收一些参数作为输入并产生一些输出。如果我们向函数传递相同的输入,它将始终产生相同的输出。

示例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

Go语言中的方法

Go语言中的方法类似于需要接收者才能被调用的函数。简单来说,方法是在**结构体**类型上定义的函数。

示例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

Go语言中函数和方法的区别

上述函数和方法的例子可以说明它们的区别。主要区别在于方法具有**接收者**,而函数没有。

另一个区别在于我们执行它们的方式,例如调用它们的方式。

考虑以下代码片段。

res1 := shape{x: 10, y: 20}// for methods
res := height(x, y) // for functions

更新于:2021年11月1日

5K+ 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告