1. 程式人生 > >每天五分鐘Go - 函數基礎

每天五分鐘Go - 函數基礎

函數 定義 pre 語言 一個 變量名 fun 結果 Go語言

函數在定義

Go的函數使用func來定義,返回類型支持多個值的返回

func 函數名([參數列]) [返回值類型]{
  方法執行體
}

參數列支持多個參數的聲明,同一類型的函數,聲明時和變量的聲明一樣

(a int,b int)
(a,b int)

返回值類型也同樣支持多個返回類型

int
(int,int)

返回的值可以有指定的變量,以便給調用者指定返回的變量名

(a int , b int)

函數的定義如下

func eval(a,b int ,op string) int{
   ... ...
}

//給返回值定義返回變量
fund div(a,b int ) (q,r int){

}

在調用多個返回值的函數時,如果只想用到其中的一個,或部分結果時,不需要的的結果可以使用_作為返回結果的空處理
因為go語言規定,定義的變量後面必須使用,不使用的話會報錯
如果調用div函數,只想要第一個返回結果,那麽可以使用這樣的方式

a,_=div(1,2)

可變參數列表

就是參數有確定個數的參數列表

func app(args ...int){
}

//調用
app(1,2,3,4,5)

聲明函數變量

也有的地方稱為匿名函數,

var add=func(a,b int) int{
    return a+b
}
add(3,4)

//如果在函數內部可以使用`:=`來聲明一個函數變量
add:=func(a,b int) int{
     return a+b
}

下面是整合的

var add =func(a,b int) int{
    one:=func(c,d int) int{
        return c+d
    }
    return one(a,b)
}

從函數的定義上來看,定義的函數是沒有方法名的,只有一個變量作為函數
匿名函數的形式

var add =func(a,b int) int{
    return func(c,d int) int{
        return c+d
    }(a,b)
}

每天五分鐘Go - 函數基礎