go语言中将函数作为变量传递

go语言中将函数作为变量传递,第1张

概述在Go中函数也是一种变量,我们可以通过type来定义它,它的类型就是所有拥有相同的参数,相同的返回值的一种类型,函数当做值和类型在我们写一些通用接口的时候非常有用通过下面这个例子我们可以看到testInt类型是一个函数类型,然后两个filter函数的参数和返回值与testInt类型一样的但

在Go中函数也是一种变量,我们可以通过type来定义它,它的类型就是所有拥有相同的参数,相同的返回值的一种类型,函数当做值和类型在我们写一些通用接口的时候非常有用

通过下面这个例子我们可以看到testInt类型是一个函数类型,
然后两个filter函数的参数和返回值与testInt类型一样的
但是我们可以实现很多种逻辑,这样使得我们的程序可以变得非常的灵活。

package mainimport (	"fmt")//声明了一个函数类型type testInt func(int) boolfunc 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.goslice =  [1 2 3 4 5 7]奇数是: [1 3 5 7]偶数是: [2 4]
总结

以上是内存溢出为你收集整理的go语言中将函数作为变量传递全部内容,希望文章能够帮你解决go语言中将函数作为变量传递所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1232241.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存