gpt4 book ai didi

ios - IOS9 swift2.0中使用Reduce()函数

转载 作者:行者123 更新时间:2023-11-28 11:13:52 25 4
gpt4 key购买 nike

我正在学习 swift 和网络服务。

当我尝试在 IOS 9 中编译以下代码时,我得到了

reduce is unavailable: call the reduce() method on the sequence

private class func urlWithName(name: String, var args: [String: String]) -> NSURL
{
args["username"] = "ijoshsmith"
let
baseURL = "http://api.geonames.org/",
queryString = queryWithArgs(args),
absolutePath = baseURL + name + "?" + queryString
return NSURL(string: absolutePath)!
}

private class func queryWithArgs(args: [String: String]) -> String
{
let parts: [String] = reduce(args, [])
{
result, pair in
let
key = pair.0,
value = pair.1,
part = "\(key)=\(value)"
return result + [part]
}
return (parts as NSArray).componentsJoinedByString("&")
}

所以,我知道我应该将 reduce(args, []) 隐藏为类似 args.reduce(initial: T, combine:(T, Self.Generator.Element) throws -> T) 的东西。谁能帮我解释和转换它。

谢谢。

最佳答案

let parts: [String] = reduce(args, [])

你试图将 reduce 作为一个独立的函数来调用,但它实际上是 SequenceType 协议(protocol)中的一个方法,它被 Array 采用>。假设 args 是您要应用 reduce 的数组,您可以这样调用它:

foo = args.reduce(t, f)

其中t是初始值,f是组合函数。

关于ios - IOS9 swift2.0中使用Reduce()函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33095490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com