go函數

一。定義閉包

      1. 關鍵字:func函數

      2.函數名:spa

      3.參數列表:code

         1. 實參:傳入的參數blog

         2.虛參:函數定義時的,佔位參數,是局部變量和外部或者全局變量衝突,互不影響。string

         3.變長參數:arr ...int,得放在最後         class

      4.返回值:import

         4.1 若是返回值命名了,這個名稱不能在函數內再用變量

         4.2 函數多返回值:數據類型

二。閉包函數:

      1.將整個函數的定義一鼓作氣寫好並賦值給一個變量。而後用這個變量名做爲函數名去調用函數體

      2.由於 Go 不支持在一 個函數的內部再定義一個嵌套函數,因此使用閉包函數可以實如今一個函數內 部定義另外一個函數的目的。

      3.閉包函數會改變外部變量的值。

 

函數高階用法:

一。函數類型也是數據類型

package main

import "fmt"

type Printer func(contents string) (n int, err error)

func printToStd(contents string) (bytesNum int, err error) {
    return fmt.Println(contents)
}

func main() {
    var p Printer
    p = printToStd
    p("something")
}

1. 格式: 

   type Printer func(contents string) (n int, err error)

  書寫函數簽名的方式與函數聲明的是一致的。只是緊挨在參數列表左邊的不是函數名稱,而是關鍵字func。這裏函數名稱和func互換了一下位置而已。

   以上格式和說明,把一個函數變成了一個數據類型。

2.實現:

  

 

二。高階函數的特色:

     1. 接受其餘的函數做爲參數傳入;

     2. 把其餘的函數做爲結果返回。

    

     樣例一

 

     樣例二

相關文章
相關標籤/搜索