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+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告