函式
在go語言中函式定義格式如下:
func functionname([parameter list]) [returntypes]
函式由func關鍵字進行宣告。
functionname:代表函式名。
parameter list:代表引數列表,函式的引數是可選的,可以包含引數也可以不包含引數。
returntypes:返回值型別,返回值是可選的,可以有返回值,也可以沒有返回值。
body:用於寫函式的具體邏輯
引數傳遞跟c++一樣:值傳遞,引用傳遞,指標傳遞
在go語言中支援變長引數,但需要注意的是變長引數必須放在函式引數的最後乙個,否則會報錯。變長引數挺有意思的
例:func main()
x := min(slice…)
fmt.printf(「the minimum is: %d」, x)
}func min(s …int) int
min := s[0]
for _, v := range s
}return min
}多返回值
go語言中函式還支援乙個特性那就是:多返回值。通過返回結果與乙個錯誤值,這樣可以使函式的呼叫者很方便的知道函式是否執行成功,這樣的模式也被稱為command,ok模式,在我們未來的程式設計中也推薦大家使用這種方式。
匿名函式
lambda表示式痛哭
閉包可以解釋為乙個函式與這個函式外部變數的乙個封裝。粗略的可以理解為乙個類,類裡面有變數和方法,其中閉包所包含的外部變數對應著類中的靜態變數。
GO語言初探
學習參考 學習go語言 q1.0 for loop 1.建立乙個基於 for 的簡單的迴圈。使其迴圈 10 次,並且使用 fmt 包列印出計數 器的值。package main func main 用 goto 改寫 1 的迴圈。關鍵字 for 不可使用。package main func main...
Go語言初探
大寫字母開頭變數為共有變數,小寫字母開頭為私有變數 函式類似 iota列舉 預設開始值為0,const中每增加一行,值加1 引用型別 類似於動態陣列 相比於array,它沒有長度限制 由於可隨意跳轉,在龐大的系統中不利於debug,所以在coding中會通過結構化程式設計來規避這類問題,那麼,在go...
go語言初探 三
說真的看到go的語法後,我還有點不習慣,感覺它的語法規則很奇怪。但或許就是這樣的語法規則讓它的執行速度變快?這也未可知。在go裡有變數和常量,但沒有列舉。列舉可以用關鍵字const去模擬。常量只能是布林型 數字型 整數型 浮點型和複數 和字串型。編譯器可以根據變數的值來判斷型別。go裡面宣告變數的方...