溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在Golang中自定義函數

發布時間:2021-01-25 17:24:08 來源:億速云 閱讀:164 作者:Leah 欄目:編程語言

這篇文章將為大家詳細講解有關如何在Golang中自定義函數,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

參數首先分為無參函數有參。無參也就是沒有參數

有參

func functionTest() {  # 小括號內就是用來放參數的
    # 函數體內
}

Go語言是強數據類型的語言,參數是要指定類型的不然就報錯。func 是函數的聲明關鍵字。

func 函數名(參數列表) 返回值類型 {函數體內部}

func addTwoNumber(a int, b int) int {
    return a + b
}

我們這里寫了一個很簡單的函數,把兩個數相加并返回結果
這里我們要注意,參數的類型是寫在參數名的后面,和變量定義是一樣的。

func addTwoNumber(a int, b int)  (sum int) {
    return a+b
}

返回值的定義,是可以給返回值取一個名稱的,還有一點是和其他的編程語言不一樣的是在Go語言中函數的返回值可以有多個的。

func addTwoNumber(a int, b int)  (int, int) {
    return a+b, a-b
}

同時可以給返回值取一個別名

func addTwoNumber(a int, b int)  (sum, dif int) {
    return a+b, a-b
}

像這樣給返回值取完名字后可以給返回值直接賦值

func addTwoNumber(a int, b int)  (sum, dif int) {
    sum = a+b
    dif = a-b
    return
}

同樣這樣也是可以直接返回sum,和dif兩個值的。

同時Go語言也具有和c語言一樣的匿名參數只做占位的作用,Go語言還不僅如此,還有聲明變量可以占位的功能。

func addTwoNumber(int, b int)  (int, int) {
    return b, b
}
func main() {
    a, _, c := 1, 2, 3
    fmt.Println(a, c)
}

其中_是用來占位的,并不可以使用。
可變參數列表

func sum(numbers ...int) int {
    s := 0
    for i := range numbers{
        s += i
    }
    return s
}
func main() {
    fmt.Println(sum(1,2,3,4,5))
}

像這樣我們就可以傳給sum函數多個值了。

Go中的值傳遞,地址傳遞

在很多語言中,在調用函數或者是方法的時候,都是要考慮我們是傳遞值還是傳遞地址(在某些語言中敘述的是傳遞引用),到底是傳遞值還是傳遞地址這一概念是非常重要的,我們應該弄清楚。

我們用一個交換數的例子來講解:

值傳遞

package main

import "fmt"

func swap(x, y int) {
    var temp = x
    x = y
    y = temp
}
func main() {
    a,b := 1,2
    swap(a,b)
    fmt.Println(a, b)
}

如何在Golang中自定義函數

地址傳遞

package main

import "fmt"

func swap(a, b *int) {
    var temp = *a
    *a = *b
    *b = temp
}
func main() {
    a,b := 1,2
    swap(&a,&b)
    fmt.Println(a, b)
}

如何在Golang中自定義函數

關于如何在Golang中自定義函數就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女