enum Weather {
case cloudy
case sunny
}
let left: Observable = Observable.of(.sunny, .cloudy, .cloudy, .sunny)
let right = Observable.of("Lisbon", "Copenhagen", "London", "Madrid", "Vienna")
let observable = Observable.combineLatest(left, right) { weather, city in
return "It's \(weather) in \(city)"
}
_ = observable.subscribe(onNext: { value in
print(value)
})
< /code>
с выводом: < /p>
Это солнечно в Лиссабоне
Это облачно в Лиссабоне
Облачно в копенгагене
Облачно в Копенхагене
это облачно в лондоне
It's Sunny в лондонском Вена
и Zip
enum Weather {
case cloudy
case sunny
}
let left: Observable = Observable.of(.sunny, .cloudy, .cloudy, .sunny)
let right = Observable.of("Lisbon", "Copenhagen", "London", "Madrid", "Vienna")
let observable = Observable.zip(left, right) { weather, city in
return "It's \(weather) in \(city)"
}
_ = observable.subscribe(onNext: { value in
print(value)
})
< /code>
с выводом: < /p>
Это солнечно в Лиссабоне
Это облачно в Копенгагене
Это облачно в Лондоне
Это солнечно в Мадриде < /pre>
Как это работает? Я понимаю, что ZIP просто отображает значения один к одному, и если нет значения для того же индекса, он просто пропустит его. Но как понять CombinElatest
Я использовал две функции. First CombineLatest : [code] enum Weather { case cloudy case sunny } let left: Observable = Observable.of(.sunny, .cloudy, .cloudy, .sunny) let right = Observable.of("Lisbon", "Copenhagen", "London", "Madrid", "Vienna") let observable = Observable.combineLatest(left, right) { weather, city in return "It's \(weather) in \(city)" } _ = observable.subscribe(onNext: { value in print(value) }) < /code> с выводом: < /p> Это солнечно в Лиссабоне Это облачно в Лиссабоне Облачно в копенгагене Облачно в Копенхагене это облачно в лондоне It's Sunny в лондонском Вена и Zip [/code]: [code] enum Weather { case cloudy case sunny } let left: Observable = Observable.of(.sunny, .cloudy, .cloudy, .sunny) let right = Observable.of("Lisbon", "Copenhagen", "London", "Madrid", "Vienna") let observable = Observable.zip(left, right) { weather, city in return "It's \(weather) in \(city)" } _ = observable.subscribe(onNext: { value in print(value) }) < /code> с выводом: < /p> Это солнечно в Лиссабоне Это облачно в Копенгагене Это облачно в Лондоне Это солнечно в Мадриде < /pre> Как это работает? Я понимаю, что ZIP просто отображает значения один к одному, и если нет значения для того же индекса, он просто пропустит его. Но как понять CombinElatest [/code]?