gpt4 book ai didi

swift - 在 Swift 中,如何使用匿名闭包参数显式指定 map 的返回值?

转载 作者:行者123 更新时间:2023-12-04 01:33:41 26 4
gpt4 key购买 nike

说我调用 map像这样,使用匿名闭包参数 $0 :

array.map {
return $0.description
}

我将如何明确定义该 map 返回 string ?这不起作用:

array.map { -> String
return $0.description
}

Contextual type for closure argument list expects 1 argument, which cannot be implicitly ignored



这是否意味着如果我想指定一个返回值,我必须命名我的参数?

[编辑:我知道我在这里不需要明确的返回类型;仍然想如何指定一个]

最佳答案

您可以使用 as识别匿名外壳的类型。在这种情况下,您还需要指定输入的类型:

let result = array.map({ $0.description } as (CustomStringConvertible) -> String)

注:您可以使用 array 中的任何类型作为输入类型。这里我只使用了 CustomStringConvertible协议(protocol),因为这是访问 .description 所需要的。属性(property)。

或者正如您所提到的,如果您为输入参数命名,则可以指定输出类型:
let result = array.map { value -> String in value.description }

另一种看待它的方式是注意 map返回 Array map 的任何类型关闭返回。您可以指定映射的结果是 [String]然后 Swift 会推断出 map关闭返回 String :
let result = array.map({ $0.description }) as [String]

或者
let result: [String] = array.map { $0.description }

关于swift - 在 Swift 中,如何使用匿名闭包参数显式指定 map 的返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60304253/

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