在go中函式也是一種變數,我們可以通過type來定義它,它的型別就是所有擁有相同的引數,相同的返回值的一種型別
type typename func(input1 inputtype1 , input2 inputtype2 [, ...]) (result1 resulttype1 [, ...])
函式作為型別到底有什麼好處呢?那就是可以把這個型別的函式當做值來傳遞,請看下面的例子
package main
import "fmt"
type testint func(int) bool // 宣告了乙個函式型別
func isodd(integer int) bool
return true
}func iseven(integer int) bool
return false
}// 宣告的函式型別在這個地方當做了乙個引數
func filter(slice int, f testint) int
} return result
}func main()
fmt.println("slice = ", slice)
odd := filter(slice, isodd) // 函式當做值來傳遞了
fmt.println("odd elements of slice are: ", odd)
even := filter(slice, iseven) // 函式當做值來傳遞了
fmt.println("even elements of slice are: ", even)
}
函式當做值和型別在我們寫一些通用介面的時候非常有用,通過上面例子我們看到testint這個型別是乙個函式型別,然後兩個filter函式的引數和返回值與testint型別是一樣的,但是我們可以實現很多種的邏輯,這樣使得我們的程式變得非常的靈活。 go 函式 作為型別 go語言
在go語言中國 可以把 函式作為一種型別 用 type 定義。利用這種特性 可以進行型別轉換。可以用作函式引數的 型別 來約束引數。型別轉換的基本格式如下 type name expression package main import fmt 宣告乙個函式型別 type calculatetype...
4 5 將函式作為值傳遞
在go 語言中,函式也是值 可被賦值 傳參或返回,這是函式式程式設計的基礎 1.函式內部的函式 必須為匿名函式 func foo i int 注 在需要使用時,可以通過bar來呼叫,bar 2.向函式傳遞函式,將其賦予乙個有名引數變數 func foo bar func int 3.從函式返回函式 ...
Golang 中函式作為值與型別
在 go 語言中,我們可以把函式作為一種變數,用 type 去定義它,那麼這個函式型別就可以作為值傳遞,甚至可以實現方法,這一特性是在太靈活了,有時候我們甚至可以利用這一特性進行型別轉換。作為值傳遞的條件是型別具有相同的引數以及相同的返回值。go 語言的型別轉換基本格式如下 type name ex...