第 8 節:函式-函式定義和引數

kuibatian發表於2019-11-26

1:函式定義和使用

package main

import "fmt"

//func 函式名(引數列表)(返回值列表){
//程式碼體
//}
//函式定義 只能定義一次
//在整個專案中函式名是唯一的 不能重名
func add(s1 int, s2 int) {
    sum := s1 + s2
    fmt.Println(sum)
}

func main() {
    //fmt.Println("你好")
    //v := len("你好")
    //fmt.Println(v)
    a := 10
    b := 20

    //函式呼叫 函式可以多次呼叫
    //在函式呼叫時引數為實際引數(實參)有具體的值 用來給形式引數(形參)傳遞資料
    add(a, b)
    add(1, 2)
}

2:普通引數列表

所謂的普通引數列表指的是,我們給函式傳遞的引數的個數都是確定好。基本語法如下:

程式碼在上面

3:不定引數列表

根據前面的講解,我們都知道了,在定義函式的時候根據需求指定引數的個數和型別,但是有時候如果無法確定引數的個數呢?
舉例說明:上一小節我們寫過一個求兩個整數之和的函式,但是在實際的開發中,也會經常遇到這樣的情況,就是專案經理(對整個專案的進度進行把控,對程式設計師進行管理的人員,稱為專案經理),要求你寫一個函式,實現整數的和。在這個要求中,專案經理並沒有說清楚到底是有幾個整數,那麼我們應該怎樣確定該函式的引數呢?就用接下來給大家講解的“不定引數列表”來解決這個問題

package main

import "fmt"

//...不定參 在函式呼叫時可以傳遞不定量(0-n)的引數
//不定參使用資料格式為切片
func sum(arr ...int) {
    //arr是一個資料的集合
    //fmt.Println(arr)

    //計算字串個數
    //len("你好")
    //計算資料集合的個數
    //count := len(arr)
    //fmt.Println(count)

    //通過arr[下標]可以找到具體資料的值
    //下標是從0開始的  到len(arr)-1為最大值下標
    //fmt.Println(arr[0])
    //fmt.Println(arr[1])
    //fmt.Println(arr[2])
    //fmt.Println(arr[3])

    sum := 0
    //通過for迴圈遍歷集合中的資料
    //for i := 0; i < len(arr); i++ {
    //  //fmt.Println(arr[i])
    //  sum += arr[i]
    //}
    //通過for迴圈遍歷集合中的資料
    //i -> index 下標 v -> value 值
    //_匿名變數  如果資料的值不需要接收  可以通過匿名變數來接收資料
    for _, v := range arr {
        //fmt.Println(i, v)
        sum += v
    }
    fmt.Println(sum)
}
func main() {
    //不定參函式呼叫
    sum(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
    sum(12, 21, 23, 32)

    //fmt.Println 就是一個不定參的格式
    fmt.Println("你好", 123, "再見")
}

相關文章