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