博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
函数作为变量,类型---golang
阅读量:5969 次
发布时间:2019-06-19

本文共 816 字,大约阅读时间需要 2 分钟。

  hot3.png

在go中函数也是一种变量,我们通过type定义这种变量的类型。拥有相同参数和相同返回值的函数属于同一种类型。

通过将函数作为一种类型的变量,我们可以将这种类型的函数作为值传递。

下面是一个简单的例子。

type functinTyoe 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 functinTyoe) []int {	var result []int	for _, value := range slice {		if f(value) {			result = append(result, value)		}	}	return result}	func test(){    slice := []int {1, 2, 3, 4, 5, 7}    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)}
 

转载于:https://my.oschina.net/lucasz/blog/86533

你可能感兴趣的文章
The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar
查看>>
VS快速生成JSON数据格式对应的实体
查看>>
Word2vec 模型载入(tensorflow)
查看>>
Linux内核——定时器和时间管理
查看>>
RabbitMq消息序列化简述
查看>>
git忽略文件【转】
查看>>
Web上的支持的图片格式以及它们之间的区别
查看>>
jQuery监听文本框值改变触发事件(propertychange)
查看>>
HDU--2040
查看>>
甲骨文Java Archive
查看>>
查看数据库错误日志的位置
查看>>
电信网络拓扑图自动布局
查看>>
C#中List〈string〉和string[]数组之间的相互转换
查看>>
洛谷P1108 低价购买[DP | LIS方案数]
查看>>
通达信里的统计函数及区块背景函数
查看>>
redis主从配置<转>
查看>>
8 行 Node.js 代码实现代理服务器
查看>>
水印,图片验证码
查看>>
C#编程(七十六)----------使用指针实现基于栈的高性能数组
查看>>
PostgreSql 分页limit
查看>>