这可能是一个愚蠢的问题,但我对RxSwift的使用相对不熟悉-所以我想做一个理智的判断.

这两种方法定义之间是否存在语用上的差异?或者它们基本上是相同的?

func foo() -> Single<Bool> {
    return Single<Bool>.create { single in
        single(.success(true))
        return Disposables.create()
    }
}

func bar() -> Observable<Bool> {
    return Observable.just(true)
}

线程执行顺序或内存管理之间有什么我应该知道的区别吗?

我只是在寻找任何我可能不知道的"抓手".

推荐答案

不同之处在于你对来电者做出的promise .如果您返回Single,则表示您得到的值正好是一个.我不需要查看实现就能看到这一点,而且我保证这种情况永远都会是这样.

Observable的情况下,我不能保证不会有更多的价值到来.即使我查看实现并看到它只是一个just,这并不意味着代码不会改变.

Swift相关问答推荐

同步问题,发送Api Call之前未设置idToken

是否有一个Kotlin等价的Swift s @ AddendableReport注释'

在运行时检测蒸汽工人的类型

SWIFT Vapor控制台应用程序-操作无法完成.权限被拒绝

如何为任务扩展的泛型静态函数获得自动类型推理

Swift通过设置变量B自动设置变量A的值

循环字典中的数组

使用View()和List()无法显示影子

如何使用 Swift 在非本地函数中切换()一个 Bool?

RealityKit - 从中心zoom 模型

避免 `(())` 显式指定 Void 类型的枚举关联值

数组中某些元素的总和

从一个范围减go 多个范围

String(validatingUTF8:) 和 String(utf8String:) 之间有区别吗?

在 RealityKit 中创建转场

如何在 Swift 中返回 Task 中定义的变量

不支持用作符合协议 AnyObject 的具体类型

Swift:在子类中覆盖 == 导致仅在超类中调用 ==

Swift 覆盖实例变量

Swift 3:小数到 Int