Golang函數-不定參數列表和多返回值函數


         Golang函數-不定參數列表和多返回值函數

                             作者:尹正傑

版權聲明:原創作品,謝絕轉載!否則將追究法律責任。

 

 

 

 

一.不定參函數

1>.不定參數的產生背景

  在定義函數的時候根據需求指定參數的個數和類型,但是有時候如果無法確定參數的個數,此時我們就可以通過"不定參數列表"來解決這個問題,Go語言的不定參數列表和Python中的"*args"有着異曲同工之妙。

  Go語言使用不定參數列表語法格式如下:
    func 函數名(數據集合 ...數據類型)

2>.不定參數的案例

package main

import (
    "fmt"
)

/*
    不定參函數定義:
        計算N個整形數據的和
*/
func sum(arr ...int) int {
    value := 0
    /*
        使用數組下標進行遍歷
    */
    //for index := 0; index < len(arr); index++ {
    //    value += arr[index]
    //}

    /*
        使用range關鍵字進行范圍遍歷,range會從集合中返回兩個數:
            第一個是對應的坐標,賦值給了匿名變量"_"
            第二個對應的是值,賦值給了變量"data"
    */
    for _, data := range arr {
        value += data
    }
    return value
}

func main() {
    /*
        我們在調用函數時可以指定函數參數的個數不盡相同。
    */
    fmt.Println(sum(1, 2, 3))
    fmt.Println(sum(1, 2, 3, 4, 5))
    fmt.Println(sum(1, 2, 3, 4, 5, 6, 7, 8, 9, 10))
}

 

二.多返回函數

package main

import (
    "fmt"
)

/*
    函數的返回值是通過函數中的return語句獲得的,return后面的值也可以是一個表達式,只要返回值類型和定義的返回值列表所匹配即可。
    Go語言支持多個返回值。
*/
func test() (x int, y float64, z string) {

    return 18, 3.14, "尹正傑"
}

func main() {

    /*
        如果函數定義了多個返回值,就需要使用多個變量來接收這些返回值
        可以使用匿名變量("_")來接收不使用的變量的值,因此我們無法將匿名變量的值取出來
    */
    a, _, c := test()
    fmt.Println(a)
    fmt.Println(c)

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM