函式 - Go 學習記錄

Ali發表於2019-03-08

函式宣告

  • 關鍵字 func 用來宣告一個函式
  • 函式可以有一個或者多個引數,每個引數後面帶有不同的型別,通過,分隔
  • 函式可以返回多個值
  • 如果只有一個返回值且不宣告返回值變數,那麼你可以省略 包括返回值 的括號
  • 如果沒有返回值,那麼就直接省略最後的返回資訊
  • 如果有返回值, 那麼必須在函式的外層新增return語句
  • 函式可以作為變數的值
  • 函式可以作為引數的返回值

函式基本定義

// 函式定義
func funcName(inputOne type, inputTwo type) (outputOne type, outputTwo type) {**
            // 邏輯程式碼...
            // 可以返回多個值
            return valueOne, valueTwo
}
// 返回指定型別
func Testmax(a, b int) int {
    if a > b {
        return a
    }
    return b
}

// 返回兩個值
func SumAndProduct(A, B int) (int, int) {
    return A+B, A*B
}

// 不確定傳入的引數個數
func Sum(ops ...int) int{
        ret :=0
// 忽略其中一個返回值可以用 下劃線 _
 for _,op:=range ops{
        ret += op
 }
    return ret
}

// 計算函式執行時長
func timeSpent(inner func(op int) int) func(op int) int {
    return func(n int) int {
        start := time.Now()
        ret := inner(n)
        fmt.Println("time spent:", time.Since(start).Seconds())
        return ret
    }
}

如想看學習記錄同步的程式碼移步 GitHub

本作品採用《CC 協議》,轉載必須註明作者和本文連結

高永立

相關文章