Programación funcional y receptiva

Programación funcional y receptiva

imagen

La programación funcional sensible es un paradigma de programación. Es un método de programación que manipula secuencias de datos mediante la creación de funciones y luego responde a estas secuencias. Combina programación funcional y programación reactiva.

La programación funcional es un paradigma de programación que requiere que pasemos funciones como parámetros o las regresemos como valores de retorno. Podemos obtener el resultado deseado combinando diferentes funciones.

Ventajas de la función de programación de prueba

  • Flexible
  • Alta reutilización
  • Concisa
  • Fácil de mantener
  • Adaptarse a diversas necesidades

Programación funcional-> Programación funcional receptiva

Piense en un evento de clic de botón como una secuencia:

imagen

// 假设用户在进入页面到离开页面期间,总共点击按钮 3 次

// 按钮点击序列
let taps: Array<Void> = [(), (), ()]
 // 每次点击后弹出提示框 taps.forEach { showAlert() }

Es ideal manejar los eventos de clic de esta manera, pero el problema es que los elementos (eventos de clic) en esta secuencia se generan de forma asíncrona. Las secuencias tradicionales no pueden describir la situación en la que dichos elementos se generan de forma asincrónica. Para resolver este problema, se generó una secuencia observable Observable. También es una secuencia, pero los elementos en esta secuencia se pueden generar de forma síncrona o asíncrona:

imagen

// 按钮点击序列
let taps: Observable<Void> = button.rx.tap.asObservable()

// 每次点击后弹出提示框
taps.subscribe(onNext: { showAlert() })

Aquí toques es la secuencia de eventos de clic de botón. Luego, respondemos a cada evento de clic desplegando un cuadro de aviso. Este método de programación se llama programación receptiva. Combinamos programación funcional y programación reactiva para obtener programación funcional reactiva:

imagen

passwordOutlet.rx.text.orEmpty
    .map { $0.characters.count >= minimalPasswordLength }
    .bind(to: passwordValidOutlet.rx.isHidden)
    .disposed(by: disposeBag)

Utilizamos diferentes funciones de construcción para crear la secuencia de datos requerida. Finalmente, responda a esta secuencia de manera apropiada. Esta es una programación funcional reactiva.

Enlace de datos (suscripción)

imagen

Un concepto importante en RxSwift es el enlace de datos (suscripción). Significa vincular la secuencia audible al observador:

Comparemos estos dos fragmentos de código:

let image: UIImage = UIImage(named: ...)
imageView.image = image


let image: Observable<UIImage> = ... image.bind(to: imageView.rx.image) 

Estamos muy familiarizados con el primer fragmento de código, que consiste en configurar una sola imagen para imageView.

El segundo fragmento de código "sincroniza" una secuencia de imágenes con la imageView. Las imágenes en esta secuencia se pueden generar de forma asincrónica. La imagen definida aquí es la parte azul de la imagen de arriba (puede escuchar la secuencia), y imageView.rx.image es la parte naranja de la imagen de arriba (el observador). Y este "mecanismo de sincronización" es el enlace de datos (suscripción).

Supongo que te gusta

Origin www.cnblogs.com/liuxiaokun/p/12680485.html
Recomendado
Clasificación