当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Swift Optional flatMap(_:)用法及代码示例


实例方法

flatMap(_:)

当此 Optional 实例不是 nil 时评估给定的闭包,将展开的值作为参数传递。

声明

func flatMap<U>(_ transform: (Wrapped) throws -> U?) rethrows -> U?

返回值

给定闭包的结果。如果此实例是 nil ,则返回 nil

参数

transform

一个闭包,它接受实例的展开值。

详述

使用带有返回可选值的闭包的flatMap 方法。此示例对可选整数执行算术运算,并具有可选结果。


let possibleNumber: Int? = Int("42")
let nonOverflowingSquare = possibleNumber.flatMap { x -> Int? in
    let (result, overflowed) = x.multipliedReportingOverflow(by: x)
    return overflowed ? nil : result
}
print(nonOverflowingSquare)
// Prints "Optional(1764)"

可用版本

iOS 8.0+, iPadOS 8.0+, macOS 10.10+, Mac Catalyst 13.0+, tvOS 9.0+, watchOS 2.0+

相关用法


注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 Optional flatMap(_:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。