go语言中将函数作为变量传递
2017-12-24 09:58
453 查看
在Go中函数也是一种变量,我们可以通过type来定义它,它的类型就是所有拥有相同的参数,相同的返回值的一种类型,函数当做值和类型在我们写一些通用接口的时候非常有用,通过下面这个例子我们可以看到testInt类型是一个函数类型,然后两个filter函数的参数和返回值与testInt类型一样的,但是我们可以实现很多种逻辑,这样使得我们的程序可以变得非常的灵活。
package main import ( "fmt" ) //声明了一个函数类型 type testInt func(int) bool func isOdd(integer int) bool { if integer%2 == 0 { return false } return true } func isEven(integer int) bool { if integer%2 == 0 { return true } return false } //声明的函数在这个地方当做了一个参数 func filter(slice []int, f testInt) []int { var result []int for _, value := range slice { if f(value) { result = append(result, value) } } return result } func main() { slice := []int{1, 2, 3, 4, 5, 7} fmt.Println("slice = ", slice) //将函数当做值来传递 odd := filter(slice, isOdd) fmt.Println("奇数是:", odd) //将函数当做值来传递 even := filter(slice, isEven) fmt.Println("偶数是:", even) } //运行结果 $ go run test.go slice = [1 2 3 4 5 7] 奇数是: [1 3 5 7] 偶数是: [2 4]
相关文章推荐
- go语言函数作为参数传递
- go语言将函数作为参数传递
- go语言将函数作为参数传递
- C语言中将二维数组作为参数传递给函数的方法
- 关于指针作为函数参数传递的理解,对比普通变量作为函数参数的需注意点,其实就是行参和实参的问题。
- go语言函数传递问题(map、切片、接口、chan)
- C语言中将函数指针作为参数的语法知识
- C语言基础知识之(十二):结构体作为函数的参数(结构体变量、结构体数组)
- Go语言的变量、函数、Socks5代理服务器
- 结构体变量和结构体指针变量作为函数参数传递的问题
- C语言中将二维数组作为参数传递给函数的方法
- Kotlin语言学习之将函数作为参数传递,使用双冒号::引用其他方法
- C语言中将二维数组作为函数参数来传递
- C语言技巧:怎样把数组作为参数传递给函数?
- Go语言的变量、函数、Socks5代理服务器示例详解
- C语言中将二维数组作为参数传递给函数的方法
- C++中将二维数组(静态的和动态的)作为函数的参数传递
- go语言:函数参数传递详解
- Go语言学习六:指针与传递到函数的指针
- go数组作为函数参数传递