讓咱們一塊兒Go(九)

前言:

又很久麼更新了,無奈公司項目多,本身又接了私活,因而時間更不夠了......不過我是不會讓它流產的,堅持!c#

1、Go語言中的函數

終於輪到函數了,其實也沒有什麼好說的,無非就是一個語法問題,c語言有c語言的語法,c#有c#的語法,那麼Go語言的函數如何呢?在前面的文章中數組

其實已經看到過一些簡單的函數了,今天咱們再來詳細看看,因此請看下面:閉包

 在上述的代碼中,咱們一共聲明並定義了兩個函數,一個是say,另外一個則是一個匿名函數,並且這裏經過匿名函數,生成了一個函數閉包。在Go語言中函數

使用func關鍵字聲明一個函數。所以,若是你要聲明一個函數,立刻要想到func,無論是否是匿名函數,惟一的區別就是匿名函數後面沒有函數名稱了,直接spa

func(參數列表)(返回值)。從上面咱們也看到了,Go語言函數的返回類型在函數名的後面,和它聲明變量的類型同樣,這也與大部分語言不一樣的。並且函數的返回值能夠是一個,也能夠多個。好比上面的say函數,咱們就返回了兩個,一個整數類型,一個error。其中整數類型的是可變參數的長度,error類型則是從fmt包中Printf函數返回的值中的其中一個,並且咱們看到接受fmt.Printf()函數返回值的第一個變量咱們使用了"_"符號,這個表明咱們不關心第一個返回值,將它忽略。接下來再來看say函數的第二個參數,是一個...interface{}類型,三個點是Go語言的一種類型Slices,相似數組,可是有所不一樣,這個將在後續文章中繼續介紹,既然是一個相似數組的類型,固然也能夠想到可變參數能夠接收任意多個,可是必須是相同類型的,而這裏使用一個空接口類型做爲Slices的元素類型,使得能夠接收任意類型參數的元素,以後能夠經過缺省參數推斷出每個元素真實的類型。接口

相關文章
相關標籤/搜索