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


Swift Result.Publisher map(_:_:_:)用法及代碼示例


實例方法

map(_:_:_:)

將三個關鍵路徑的值發布為一個元組。

聲明

func map<T0, T1, T2>(
    _ keyPath0: KeyPath<Self.Output, T0>,
    _ keyPath1: KeyPath<Self.Output, T1>,
    _ keyPath2: KeyPath<Self.Output, T2>
) -> Publishers.MapKeyPath3<Self, T0, T1, T2>

返回值

將三個關鍵路徑的值作為元組發布的發布者。

參數

keyPath0

Output 上的屬性的關鍵路徑。

keyPath1

Output 上的第二個屬性的關鍵路徑。

keyPath2

Output 上的第三個屬性的關鍵路徑。

詳述

在以下示例中,Publisher/map(_:_:_:) 運算符使用 Swift 鍵路徑語法來訪問由 Just 發布者發布的 DiceRoll 結構的 die1die2die3 成員。

下遊接收器訂閱者僅接收這三個值(作為 (Int, Int, Int) 元組),而不是整個 DiceRoll


struct DiceRoll {
    let die1: Int
    let die2: Int
    let die3: Int
}


cancellable = Just(DiceRoll(die1:Int.random(in:1...6),
                            die2: Int.random(in:1...6),
                            die3: Int.random(in:1...6)))
    .map(\.die1, \.die2, \.die3)
    .sink { values in
        print ("Rolled: \(values.0), \(values.1), \(values.2) (total \(values.0 + values.1 + values.2))")
    }
// Prints "Rolled: 5, 4, 2 (total 11)" (or other random values).

可用版本

iOS 13.0+, iPadOS 13.0+, macOS 10.15+, Mac Catalyst 13.0+, tvOS 13.0+, watchOS 6.0+

相關用法


注:本文由純淨天空篩選整理自apple.com大神的英文原創作品 Result.Publisher map(_:_:_:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。