在swift中的元组中接受的值

时间:2015-03-13 14:08:55

标签: swift tuples

我是一个快速和功能性编程的全新手。

我的愚蠢问题如下:

元组可以返回一组函数吗? 是否接受了这样的功能?

someFunction(param: Bool) -> ((Int) -> Int, (Float) ->Float) -> Double)

感谢您的回复

1 个答案:

答案 0 :(得分:0)

你可以有一个任何类型的元组,函数是类型,所以你可以有函数元组。

例如,这里有两个函数的2元组,一个需要两个Int并返回一个Int,另一个需要两个Double并返回一个{{ 1}}:

Double

当你说,“一个元组能否返回一组函数?”,我猜你的意思是“一个函数能否返回一个函数元组?”。答案也是肯定的:

// a 2-tuple of the addition functions for ints and doubles
let tupleOfFunctions: ((Int,Int)->Int, (Double,Double)->Double) = (+,+)

但是,你的例子有点混乱 - 如果你在前面添加了一个func returnTwoFunctions(param: Bool) -> ((Int,Int)->Int, (Double,Double)->Double) { // use the argument to drive whether to return some addition // or some subtraction functions return param ? (+,+) : (-,-) } 关键字,它就是一个函数声明,但你的括号不匹配。它看起来最像是一个函数(func),它接受一个布尔参数,并返回一个函数,该函数本身接受两个函数并返回一个double:

someFunction

这是否是你想要的,以及你是否有这种功能的用例,我不确定......