RxPY - Operatori di filtro
antirimbalzo
Questo operatore fornirà i valori osservabili dalla sorgente, fino al periodo di tempo specificato e ignorerà il resto dei valori se il tempo passa.
Sintassi
debounce(duetime)
Parametri
duetime: valuterà in secondi o istanze di tempo, la durata che deciderà i valori da restituire dalla sorgente osservabile.
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.debounce(2.0)
)
sub1.subscribe(lambda x: print("The value is {0}".format(x)))
Produzione
E:\pyrx>python testrx.py
The value is 10
distinto
Questo operatore darà tutti i valori che sono distinti dalla fonte osservabile.
Sintassi
distinct()
Valore di ritorno
Restituirà un osservabile, dove avrà valori distinti dalla fonte osservabile.
Esempio
from rx import of, operators as op
from datetime import date
test = of(1, 6, 15, 1, 10, 6, 40, 10, 58, 20, 40)
sub1 = test.pipe(
op.distinct()
)
sub1.subscribe(lambda x: print("The distinct value is {0}".format(x)))
Produzione
E:\pyrx>python testrx.py
The distinct value is 1
The distinct value is 6
The distinct value is 15
The distinct value is 10
The distinct value is 40
The distinct value is 58
The distinct value is 20
element_at
Questo operatore fornirà un elemento dalla fonte osservabile per l'indice dato.
Sintassi
element_at(index)
Parametri
indice: il numero a partire da zero per il quale è necessario l'elemento della sorgente osservabile.
Valore di ritorno
Restituirà un osservabile con il valore della sorgente osservabile con l'indice fornito.
Esempio
from rx import of, operators as op
from datetime import date
test = of(1, 6, 15, 1, 10, 6, 40, 10, 58, 20, 40)
sub1 = test.pipe(
op.element_at(5)
)
sub1.subscribe(lambda x: print("The value is {0}".format(x)))
Produzione
E:\pyrx>python testrx.py
The value is 6
filtro
Questo operatore filtrerà i valori dalla sorgente osservabile in base alla funzione del predicato fornita.
Sintassi
filter(predicate_func)
Parametri
predicate_func: questa funzione deciderà i valori da filtrare dalla sorgente osservabile.
Valore di ritorno
Restituirà un osservabile che avrà i valori filtrati dalla sorgente osservabile in base alla funzione del predicato.
Esempio
from rx import of, operators as op
from datetime import date
test = of(1, 6, 15, 1, 10, 6, 40, 10, 58, 20, 40)
sub1 = test.pipe(
op.filter(lambda x : x %2==0)
)
sub1.subscribe(lambda x: print("The filtered value is {0}".format(x)))
Nell'esempio, abbiamo filtrato tutti i numeri pari.
Produzione
E:\pyrx>python testrx.py
The filtered value is 6
The filtered value is 10
The filtered value is 6
The filtered value is 40
The filtered value is 10
The filtered value is 58
The filtered value is 20
The filtered value is 40
primo
Questo operatore darà il primo elemento osservabile dalla sorgente.
Sintassi
first(predicate_func=None)
Parametri
predicate_func: (opzionale) questa funzione deciderà il primo elemento da selezionare in base alla condizione se passata.
Valore di ritorno
Restituirà un osservabile con il primo valore della sorgente osservabile.
Esempio
from rx import of, operators as op
from datetime import date
test = of(1, 6, 15, 1, 10, 6, 40, 10, 58, 20, 40)
sub1 = test.pipe(
op.first()
)
sub1.subscribe(lambda x: print("The first element is {0}".format(x)))
Produzione
E:\pyrx>python testrx.py
The first element is 1
Esempio 2: utilizzo di predicate_func
from rx import of, operators as op
from datetime import date
test = of(1, 6, 15, 1, 10, 6, 40, 10, 58, 20, 40)
sub1 = test.pipe(
op.first(lambda x : x%2==0)
)
sub1.subscribe(lambda x: print("The first element is {0}".format(x)))
Produzione
E:\pyrx>python test1.py
The first element is 6
ignore_elements
Questo operatore ignorerà tutti i valori dall'Osservable di origine ed eseguirà solo chiamate per completare o generare errori nelle funzioni di callback.
Sintassi
ignore_elements()
Valore di ritorno
Restituisce un osservabile che chiamerà completo o errore in base alla fonte osservabile.
Esempio
from rx import of, operators as op
from datetime import date
test = of(1, 6, 15, 1, 10, 6, 40, 10, 58, 20, 40)
sub1 = test.pipe(
op.ignore_elements()
)
sub1.subscribe(lambda x: print("The first element is {0}".format(x)),
lambda e: print("Error : {0}".format(e)),
lambda: print("Job Done!"))
Produzione
E:\pyrx>python testrx.py
Job Done!
scorso
Questo operatore fornirà l'ultimo elemento dalla sorgente osservabile.
Sintassi
last(predicate_func=None)
Parametri
predicate_func: (opzionale) Questa funzione deciderà l'ultimo elemento da selezionare in base alla condizione, se passata.
Valore di ritorno
Restituirà un osservabile con l'ultimo valore della fonte osservabile.
Esempio
from rx import of, operators as op
from datetime import date
test = of(1, 6, 15, 1, 10, 6, 40, 10, 58, 20, 40)
sub1 = test.pipe(
op.last()
)
sub1.subscribe(lambda x: print("The last element is {0}".format(x)))
Produzione
E:\pyrx>python test1.py
The last element is 40
Salta
Questo operatore restituirà un osservabile, che salterà la prima occorrenza degli elementi di conteggio presi come input.
Sintassi
skip(count)
Parametri
conteggio: il conteggio è il numero di volte in cui gli elementi verranno ignorati dalla fonte osservabile.
Valore di ritorno
Restituirà un osservabile che salta i valori in base al conteggio fornito.
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(5)
)
sub1.subscribe(lambda x: print("The element is {0}".format(x)))
Produzione
E:\pyrx>python testrx.py
The element is 6
The element is 7
The element is 8
The element is 9
The element is 10
skip_last
Questo operatore restituirà un osservabile, che salterà l'ultima occorrenza degli elementi di conteggio presi come input.
Sintassi
skip_last(count)
Parametri
count: il conteggio è il numero di volte in cui gli elementi verranno ignorati dalla fonte osservabile.
Valore di ritorno
Restituirà un osservabile che salta i valori in base al conteggio fornito dall'ultimo.
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_last(5)
)
sub1.subscribe(lambda x: print("The element is {0}".format(x)))
Produzione
E:\pyrx>python testrx.py
The element is 1
The element is 2
The element is 3
The element is 4
The element is 5
prendere
Questo operatore fornirà un elenco di valori di origine in ordine continuo in base al conteggio fornito.
Sintassi
take(count)
Parametri
count: il conteggio è il numero di elementi, che sarà dato dalla fonte osservabile.
Valore di ritorno
Restituirà un osservabile che ha i valori in ordine continuo in base al conteggio fornito.
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(5)
)
sub1.subscribe(lambda x: print("The element is {0}".format(x)))
Produzione
E:\pyrx>python testrx.py
The element is 1
The element is 2
The element is 3
The element is 4
The element is 5
take_last
Questo operatore fornirà un elenco di valori di origine, in ordine continuo dall'ultimo in base al conteggio fornito.
Sintassi
take_last(count)
Parametri
count: il conteggio è il numero di elementi, che sarà dato dalla fonte osservabile.
Valore di ritorno
Restituirà un osservabile, che ha i valori in ordine continuo dall'ultimo in base al conteggio fornito.
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_last(5)
)
sub1.subscribe(lambda x: print("The element is {0}".format(x)))
Produzione
E:\pyrx>python testrx.py
The element is 6
The element is 7
The element is 8
The element is 9
The element is 10