2016-06-21 86 views
-3

我很困惑通過以下Golang代碼的結構:這個Golang函數聲明的組件是什麼?

type Team []*athlete 

func (s Team) Len() int { 
    //some code here 
} 

func (s Team) Swap(i, j int) { 
    s[i], s[j] = s[j], s[i] 
} 

我是新去不熟悉這個函數聲明結構。什麼是輸入/輸出值?對於我所確信的道歉是一個天真的問題。試圖谷歌,引用我的Go書,並仍然困惑。

+3

你有沒有走過[Tour Of Go](https://tour.golang.org/welcome/1)? – JimB

+0

什麼是輸入/輸出值?我和j? – lulyon

+0

謝謝@JimB,在Tour of Go中找到答案。 – Chloe

回答

2

在聲明func (r Thing) Name(variable aType) otherType,各種事情(按順序):

  • func是「這是一個函數」關鍵字
  • (r Thing)指示「,這是對類型Thing的方法,該值被調用的方法將在變量r「(普通函數沒有接收器;方法總是隻有一個接收器)。
  • Name是方法
  • (variable aType)的名稱是一個參數列表,在這種情況下一個單獨的參數的類型的aType,。對方法有零參數是完全有效的。
  • otherType是返回類型,如果沒有有用的返回值存在,這可以省略。
相關問題