0
我想用自己的方式编写或实现自己的高阶函数,但无法编写它。 在下面的代码中,我尝试写入过滤器。如何编写地图,过滤器,缩小等高阶函数?
var array : [String] = ["Sagar","Harshit","Parth","Gunja","Marmik","Sachin","Saurav"]
//Native filter function of Swift
array = array.filter { (name) -> Bool in
return name.prefix(1) == "S"
}
我执行下面的代码,根据filter
方法签名,但我知道,我们不能写,返回类型关闭(如果可能的话,我不知道)。
func filterArray(_ array : [String], completionHandler : (_ name : String) ->()) ->(){
for (_, value) in array.enumerated(){
completionHandler(value)
}
}
self.filterArray(array) { (name) ->() in
if name.prefix(1) != "S"{
if let index = array.index(of: name){
array.remove(at: index)
}
}
}
我的实现工作正常,并过滤数组。但我想抽象从数组中删除对象的逻辑。
我们可以写我们自己的高阶函数吗? 如果是,那么请帮助实施上面的一个。 在此先感谢。
你为什么枚举阵列和丢弃的索引值我会检查这个视频来了解详情 – technerd
?这个不成立。 '用于数组中的值{' –
另外String有一个名为hasPrefix的方法。 'name.prefix(1)!=“S”'你应该把它改为'!name.hasPrefix(“S”)' –