GoLang 函式作為 型別 和 值

2021-09-07 07:33:07 字數 989 閱讀 1438

**示例

package test

import (

"fmt""

testing")

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 test_func(t *testing.t)

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)

}

輸出結果:

slice =  [123

457]

odd elements of slice are: [13

57]even elements of slice are: [

24]

函式當做值和型別在我們寫一些通用介面的時候非常有用,通過上面例子我們看到testint這個型別是乙個函式型別,然後兩個filter函式的引數和返回值與testint型別是一樣的,但是我們可以實現很多種的邏輯,這樣使得我們的程式變得非常的靈活。

Golang 中函式作為值與型別

在 go 語言中,我們可以把函式作為一種變數,用 type 去定義它,那麼這個函式型別就可以作為值傳遞,甚至可以實現方法,這一特性是在太靈活了,有時候我們甚至可以利用這一特性進行型別轉換。作為值傳遞的條件是型別具有相同的引數以及相同的返回值。go 語言的型別轉換基本格式如下 type name ex...

Golang 中函式作為值與型別

在 go 語言中,我們可以把函式作為一種變數,用 type 去定義它,那麼這個函式型別就可以作為值傳遞,甚至可以實現方法,這一特性是在太靈活了,有時候我們甚至可以利用這一特性進行型別轉換。作為值傳遞的條件是型別具有相同的引數以及相同的返回值。go 語言的型別轉換基本格式如下 type name ex...

golang 值型別和引用型別

1.值型別和引用型別 package main import fmt func add num int func addarry arry 3 int func addslice slice int func addmap m map int int func main 值型別 fmt.printl...