RxPY - Operatori condizionali e booleani

tutti

Questo operatore controllerà se tutti i valori della sorgente osservabile soddisfano la condizione data.

Sintassi

all(predicate)

Parametri

predicato: booleano. Questa funzione verrà applicata a tutti i valori, dalla sorgente osservabile e restituirà vero o falso in base alla condizione data.

Valore di ritorno

Il valore restituito è un osservabile, che avrà il valore booleano vero o falso, in base alla condizione applicata a tutti i valori della sorgente osservabile.

Esempio 1

from rx import of, operators as op
test = of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
sub1 = test.pipe(
   op.all(lambda a: a<10)
)
sub1.subscribe(lambda x: print("The result is {0}".format(x)))

Produzione

E:\pyrx>python testrx.py
The result is False

Esempio 2

from rx import of, operators as op
test = of(1, 2, 3, 4, 5, 6, 7, 8, 9)
sub1 = test.pipe(
   op.all(lambda a: a<10)
)
sub1.subscribe(lambda x: print("The result is {0}".format(x)))

Produzione

E:\pyrx>python testrx.py
The result is True

contiene

Questo operatore restituirà un osservabile con il valore vero o falso se il valore dato è presente è il valore della fonte osservabile.

Sintassi

contains(value, comparer=None)

Parametri

valore: il valore da verificare se presente nella sorgente osservabile

comparer: opzionale. Questa è una funzione di confronto da applicare ai valori presenti nella sorgente osservabili per il confronto.

Example

from rx import of, operators as op
test = of(17, 25, 34, 56, 78)
sub1 = test.pipe(
   op.contains(34)
)
sub1.subscribe(lambda x: print("The value is {0}".format(x)))

Produzione

E:\pyrx>python testrx.py
The value is True

Esempio 2: utilizzo di comparer

from rx import of, operators as op
test = of(17, 25, 34, 56, 78)
sub1 = test.pipe(
   op.contains(34, lambda x, y: x == y)
)
sub1.subscribe(lambda x: print("The valus is {0}".format(x)))

Produzione

E:\pyrx>python testrx.py
The value is True

default_if_empty

Questo operatore restituirà un valore predefinito se l'osservabile di origine è vuoto.

Sintassi

default_if_empty(default_value=None)

Parametri

valore_predefinito: opzionale. Fornirà l'output, poiché None is nothing viene passato come default_value, altrimenti darà qualsiasi valore passato.

Valore di ritorno

Restituirà un osservabile con un valore predefinito se la fonte osservabile è vuota.

Esempio 1

from rx import of, operators as op
test = of()
sub1 = test.pipe(
   op.default_if_empty()
)
sub1.subscribe(lambda x: print("The value is {0}".format(x)))

Produzione

E:\pyrx>python testrx.py
The value is None

Esempio 2: valore_predefinito passato

from rx import of, operators as op
test = of()
sub1 = test.pipe(
   op.default_if_empty("Empty!")
)
sub1.subscribe(lambda x: print("The value is {0}".format(x)))

Produzione

E:\pyrx>python testrx.py
The value is Empty!

sequenza_equal

Questo operatore confronterà due sequenze di osservabili o un array di valori e restituirà un osservabile con il valore vero o falso.

Sintassi

sequence_equal(second_seq, comparer=None)

Parametri

second_seq: osservabile o array da confrontare con il primo osservabile.

comparer: opzionale. Funzione comparatore da applicare per confrontare i valori in entrambe le sequenze.

Esempio

from rx import of, operators as op
test = of(1,2,3)
test1 = of(1,2,3)
sub1 = test.pipe(
   op.sequence_equal(test1)
)
sub1.subscribe(lambda x: print("The value is {0}".format(x)))

Produzione

E:\pyrx>python testrx.py
The value is True

Esempio: utilizzo di una funzione di confronto

from rx import of, operators as op
test = of(1,2,3)
test1 = of(1,2,3)
sub1 = test.pipe(
   op.sequence_equal(test1, lambda x, y : x == y)
)
sub1.subscribe(lambda x: print("The value is {0}".format(x)))

Produzione

E:\pyrx>python testrx.py
The value is True

skip_until

Questo operatore scarterà i valori dalla sorgente osservabile fino a quando la seconda osservabile non emetterà un valore.

Sintassi

skip_until(observable)

Parametri

osservabile: il secondo osservabile che quando emette un valore attiverà la sorgente osservabile.

Valore di ritorno

Restituirà un osservabile che avrà valori dalla sorgente osservabile fino a quando il secondo osservabile non emetterà un valore.

Esempio

from rx import interval,range, operators as op
from datetime import date
test = interval(0)
test1 = range(10)
sub1 = test1.pipe(
   op.skip_until(test)
)
sub1.subscribe(lambda x: print("The value is {0}".format(x)))

Produzione

E:\pyrx>python testrx.py
The value is 0
The value is 1
The value is 2
The value is 3
The value is 4
The value is 5
The value is 6
The value is 7
The value is 8
The value is 9

skip_ while

Questo operatore restituirà un osservabile con valori dalla sorgente osservabile che soddisfa la condizione passata.

Sintassi

skip_while(predicate_func)

Parametri

predicate_func: questa funzione verrà applicata a tutti i valori della sorgente osservabile e restituirà i valori che soddisfano la condizione.

Valore di ritorno

Restituirà un osservabile con valori dalla fonte osservabile che soddisfa la condizione passata.

Esempio

from rx import of, operators as op
from datetime import date
test = of(1,2,3,4,5,6,7,8,9,10)
sub1 = test.pipe(
   op.skip_while(lambda x : x < 5)
)
sub1.subscribe(lambda x: print("The value is {0}".format(x)))

Produzione

E:\pyrx>python testrx.py
The value is 5
The value is 6
The value is 7
The value is 8
The value is 9
The value is 10

take_until

Questo operatore scarterà i valori dalla sorgente osservabile dopo che il secondo osservabile emette un valore o viene terminato.

Sintassi

take_until(observable)

Parametri

osservabile: il secondo osservabile che, quando emette un valore, terminerà la sorgente osservabile.

Valore di ritorno

Restituirà un osservabile, che avrà valori dalla sorgente osservabile solo, quando il secondo osservabile utilizzato emette un valore.

Esempio

from rx import timer,range, operators as op
from datetime import date
test = timer(0.01)
test1 = range(500)
sub1 = test1.pipe(
   op.take_until(test)
)
sub1.subscribe(lambda x: print("The value is {0}".format(x)))

In questo esempio, otterrai i valori emessi da range. Ma, una volta che il timer è terminato, fermerà la sorgente osservabile dall'emettere ulteriormente.

Produzione

E:\pyrx>python testrx.py
The value is 0
The value is 1
The value is 2
The value is 3
The value is 4
The value is 5
The value is 6
The value is 7
The value is 8
The value is 9
The value is 10
The value is 11
The value is 12
The value is 13
The value is 14
The value is 15
The value is 16
The value is 17
The value is 18
The value is 19
The value is 20
The value is 21
The value is 22
The value is 23
The value is 24
The value is 25
The value is 26

prendere_tempo

Questo operatore scarterà i valori dalla fonte osservabile quando la condizione fallisce.

Sintassi

take_while(predicate_func)

Parametri

predicate_func: questa funzione valuterà ogni valore della sorgente osservabile.

Valore di ritorno

Restituirà un osservabile con valori fino a quando la funzione predicato non sarà soddisfatta.

Esempio

from rx import of, operators as op
from datetime import date
test = of(1,2,3,4,5,6,7,8,9,10)
sub1 = test.pipe(
   op.take_while(lambda a : a < 5)
)
sub1.subscribe(lambda x: print("The value is {0}".format(x)))

Produzione

E:\pyrx>python testrx.py
The value is 1
The value is 2
The value is 3
The value is 4