當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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(_:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。