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
廣告