Swift递归函数,返回类型Closure
问题描述:
以下是基于调用的返回函数进行加法或减法的基本函数。Swift递归函数,返回类型Closure
func calculateFunc(_ inputValue:Int) -> (add:(Int)->(Int),sub:(Int)->(Int)){
func addFunction(_ newValue:Int)->(Int){
return inputValue + newValue
}
func subFunction(_ newValue:Int) -> Int {
return inputValue - newValue
}
return (addFunction,subFunction)
}
calculateFunc(4).add(2)
calculateFunc(4).sub(1)
我不知道以下是否可能。是否有任何递归函数的概念可以帮助?
calculateFunc(4)。新增(2).SUB(1)。新增(9)
答
你需要写像下面
extension Int {
func add(_ value: Int) -> Int {
return self+value
}
func sub(_ value: Int) -> Int {
return self-value
}
}
然后,你可以调用函数Int
延期如下
let x: Int = 5
let y = x.add(1).sub(3)
准确的目标是什么?只是为了实现这个语法'calculateFunc(4).add(2).sub(1).add(9)',或者通过单独使用函数来实现? – Alexander
是的,以实现语法。但关闭不能延长。 – andyPaul
我一直在玩它。我认为基本上需要一个函数来作为一个函数返回自己。我不认为这是可能的静态类型系统,就像斯威夫特的 – Alexander