golang-3- 函數

函數是一等公民,無論什麼語言函數都是重中之重。

1、函數可以沒有參數或接受多個參數,下面這個例子中,`add` 接受兩個 int 類型的參數。

注意:類型在變量名之後(x int, y int) 返回結果在最後 int ,這點和大部分語言相反。

<code>package mainimport "fmt"func add(x int, y int) int {return x + y}func main() {fmt.Println(add(2, 3))}//以上是打印 2+3的結果/<code>

2、函數的入參類型的省略,當兩個或多個連續的函數命名參數是同一類型,則除了最後一個類型之外,其他都可以省略,如下圖add函數

<code>package mainimport "fmt"func add(x , y ,z int) int { //x,y,z都是一個類型int 前面兩個可以省略return x + y+z}func main() {fmt.Println(add(2, 3,4))}/<code>

3、函數可以任意數量的返回值,swap 函數返回了兩個字符串

<code>package mainimport "fmt"//第一個返回值y ,第二個返回值x 返回類型要用括號包起來,裡面是返回類型func swap(x, y string) (string, string) { return y, x}func main() {a, b := swap("hello", "world")fmt.Println(a, b)}/<code>

4、Go 的返回值可以被命名,並且像變量那樣使用,返回值的名稱應當具有一定的意義,可以作為文檔使用。沒有參數的 return 語句返回結果的當前值。也就是`直接`返回。直接返回語句僅應當用在像下面這樣的短函數中。在長的函數中它們會影響代碼的可讀性。

<code>package mainimport "fmt"func addStr(x, y string) (m,n string) { //可以指定返回順序結構m=y+"is ok"n = x + "is ok"return}func main() {a, b := addStr("hello", "world")fmt.Println(a, b)}/<code>



函數的基本使用就這些,以後的章節會介紹,怎麼結合結構體去使用。