Карта:

могу понять разницу между картой и flatMap в RxSwift. В примерах игровой площадки RxSwift и книгах flatMap используется в качестве конвертирующих Observables, обладающих внутренним свойством Observable.

Однако я вижу, что flatMap используется непосредственно в Observable основных типов. Например, для приведенного ниже кода, они оба выдают одинаковый вывод. Может кто-нибудь помочь мне понять разницу между картой и flatMap

struct Student {
    let score:Int
}

let ryan = Student(score:80)
let student = PublishSubject<Student>()

let deneme = student.map({ val in
    return Student(score: val.score+10)
})
deneme.subscribe(onNext: {
    print("StudentMAP: \($0.score)")
})

let deneme2 = student.flatMap({ val -> Observable<Student> in
    return Observable.of(Student(score: val.score + 10))
})

deneme2.subscribe(onNext: {
    print("StudentFlatMAP: \($0.score)")
})

 student.onNext(ryan)

Ответы на вопрос(3)

Ваш ответ на вопрос