和 .~ 语法的作用吗?我-6ren">
gpt4 book ai didi

|> 和 .~ 上的 Swift 语法

转载 作者:搜寻专家 更新时间:2023-11-01 07:17:22 25 4
gpt4 key购买 nike

有一些我不明白的 Swift 语法...

let creator = .template |> User.lens.avatar.small .~ ""

有人能告诉我 |>.~ 语法的作用吗?我还看到使用了 %~

如果您能指出 Swift 文档中的位置,我将不胜感激。使用这些字符进行搜索很困难。我想查看完整的符号数组。

最佳答案

流水线

可以使用 |> 组合流流水线运算符和流操作。

例如,一种非常常见的增量搜索技术,使用 searchTextStream看起来像这样:

let searchResultsStream: Stream<[Result]> = searchTextStream
|> debounce(0.3)
|> distinctUntilChanged
|> map { text -> Stream<[Result]> in
return API.getSearchResultsStream(text)
}
|> switchLatestInner

在某些情况下(例如 repeat() ),您需要使用可克隆的 Stream<T>.Producer。 ( Void -> Stream<T> ) 而不是普通的 Stream<T> .在这种情况下,您可以使用 |>> streamProducer 流水线运算符。

// first, wrap stream with closure
let timerProducer: Void -> Stream<Int> = {
return createTimerStream(interval: 1)
|> map { ... }
|> filter { ... }
}

// then, use `|>>` (streamProducer-pipelining operator)
let repeatTimerProducer = timerProducer |>> repeat(3)

但在上面的例子中,用闭包包裹总是会变得很麻烦,所以你也可以使用|>>流和流操作的运算符(感谢@autoclosure)。

let repeatTimerProducer = createTimerStream(interval: 1)
|>> map { ... }
|>> filter { ... }
|>> repeat(3)

关于|> 和 .~ 上的 Swift 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41402695/

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