有一些 Swift 语法我不明白......
let creator = .template |> User.lens.avatar.small .~ ""
Run Code Online (Sandbox Code Playgroud)
有人能告诉我|>and.~语法的作用吗?我也看到%~用过。
如果您能指出 Swift 文档中的位置,我将不胜感激。使用这些字符进行搜索很困难。我想查看完整的符号数组。
|>流可以通过使用流管道运算符和流操作来组成。
例如,使用的一种非常常见的增量搜索技术searchTextStream如下所示:
let searchResultsStream: Stream<[Result]> = searchTextStream
|> debounce(0.3)
|> distinctUntilChanged
|> map { text -> Stream<[Result]> in
return API.getSearchResultsStream(text)
}
|> switchLatestInner
Run Code Online (Sandbox Code Playgroud)
在某些情况下(例如repeat())您想使用 cloneable Stream<T>.Producer( Void -> Stream<T>) 而不是 plain Stream<T>。在这种情况下,您可以改用|>>streamProducer-pipelined 运算符。
// 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)
Run Code Online (Sandbox Code Playgroud)
但在上述情况下,用闭包包装总是会变得很麻烦,因此您也可以使用|>>运算符进行流和流操作(感谢@autoclosure)。
let repeatTimerProducer = createTimerStream(interval: 1)
|>> map { ... }
|>> filter { ... }
|>> repeat(3)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3700 次 |
| 最近记录: |