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


Swift Optional.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大神的英文原创作品 Optional.Publisher map(_:_:_:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。