Skip to content

mickamy/DistinctUntilChangedBugExample

Repository files navigation

DistinctUntilChangedBugExample

Observable<(Bool, Bool)>.distinctUntilChanged behaives unexpectedly.

Observable<(Bool, Bool)>
    .of(
      (false, false),
      (true, false),
      (false, true),
      (true, true)
    )
    .distinctUntilChanged { $0 == $1 }
    .subscribe(onNext: { print("onNext: \($0)") })
    .disposed(by: bag)

I expected the following output,

onNext: (false, false)
onNext: (true, false)
onNext: (false, true)
onNext: (true, true)

but actually the result is like below

onNext: (false, false)
onNext: (true, false)
onNext: (true, true)

I though it might be a bug belongs to Swift language, but it's not.

print((false, false) == (true, false)) // false
print((false, false) == (true, false)) // false
print((false, false) == (true, false)) // false

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published