实例方法 'flatMap' 要求 'String' 符合 'ObservableConvertibleType'

Instance method 'flatMap' requires that 'String' conform to 'ObservableConvertibleType'

我遇到 RxSwift

的构建错误
func testFlatMap() {

    let bag = DisposeBag()
    let subject = PublishSubject<String>.init()

    subject.flatMap({ (value) -> String in
            PublishSubject.just(value)
        }).subscribe(

        onNext: { value in
            print(value)
        }

    ).disposed(by: bag)

    subject.on(.next("Test"))
}

Instance method 'flatMap' requires that 'String' conform to 'ObservableConvertibleType'

我错过了什么?

这是问题所在:

subject.flatMap({ (value) -> String in
    PublishSubject.just(value)
})

在第一行你告诉编译器闭包 return 是一个 String 但是 flatMap 需要闭包 return 一个 Observable 类型。

此外,仅供参考:a.flatMap { .just([=13=]) } 实际上是一个空操作。 换句话说:aa.flatMap { .just([=13=]) }