有人能给我一个很好的理由说明为什么这不起作用:
let a: [Int]? = [1]
let b: [Int]? = nil
a == b
Run Code Online (Sandbox Code Playgroud)
这将是我提出的(如果不优雅)解决方案.但这是微不足道的,所以我觉得我错过了一个很好的理由,为什么没有实现.
func ==<T: Equatable>(lhs: [T]?, rhs: [T]?) -> Bool {
if let lhs = lhs, let rhs = rhs {
return lhs == rhs
}
else if let _ = lhs {
return false
}
else if let _ = rhs {
return false
}
return true
}
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种运算符,它Observables通过在两者都Observables发出一个元素之前不发出任何内容来组合两者(类似于combineLatest),但随后仅通过将一个元素与Observable另一个最近发出的元素组合来发出元素Observable(类似于withLatestFrom)。结果看起来像这样(y可观察的是“控制”):
这样的运营商存在吗?