定义一个函数类型,实现定义的函数类型,作为参数调用
package main
import "fmt"
//函数作为数据类型
type myFunc func(arr int) bool
func main() {
arr := []int{1,6,7,21,23,33,34,456,76,89,97,31,16,17,29}
odd := Filter(arr,isOdd)
fmt.Println("奇数有:",odd)
even := Filter(arr,isEven)
fmt.Println("偶数有:",even)
}
//判断是奇数
func isOdd(num int) bool {
if num%2 == 0 {
return false
}
return true
}
//判断是偶数
func isEven(num int) bool {
if num%2 == 0 {
return true
}
return false
}
//根据函数来处理切片,实现奇偶数分组
func Filter(arr []int,f myFunc) []int {
var result []int
for _,value := range arr {
if f(value) {
result = append(result,value)
}
}
return result
}
版权声明:本文为wade3015原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。