RxPY - Operadores condicionais e booleanos
todos
Este operador verificará se todos os valores da fonte observável satisfazem a condição fornecida.
Sintaxe
all(predicate)
Parâmetros
predicado: booleano. Esta função será aplicada a todos os valores, da fonte observável e retornará verdadeiro ou falso com base na condição fornecida.
Valor de retorno
O valor de retorno é um observável, que terá o valor booleano verdadeiro ou falso, com base na condição aplicada a todos os valores da fonte observável.
Exemplo 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)))
Resultado
E:\pyrx>python testrx.py
The result is False
Exemplo 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)))
Resultado
E:\pyrx>python testrx.py
The result is True
contém
Este operador retornará um observável com o valor verdadeiro ou falso se o valor fornecido estiver presente nos valores da fonte observável.
Sintaxe
contains(value, comparer=None)
Parâmetros
valor: O valor a ser verificado se presente na fonte observável
comparador: opcional. Esta é uma função de comparação a ser aplicada aos valores presentes na fonte observável para comparação.
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)))
Resultado
E:\pyrx>python testrx.py
The value is True
Exemplo 2: usando comparador
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)))
Resultado
E:\pyrx>python testrx.py
The value is True
default_if_empty
Este operador retornará um valor padrão se a fonte observável estiver vazia.
Sintaxe
default_if_empty(default_value=None)
Parâmetros
valor_padrão: opcional. Ele fornecerá a saída, já que None is nothing é passado como default_value, caso contrário, fornecerá qualquer valor passado.
Valor de retorno
Ele retornará um observável com um valor padrão se o observável de origem estiver vazio.
Exemplo 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)))
Resultado
E:\pyrx>python testrx.py
The value is None
Exemplo 2: default_value aprovado
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)))
Resultado
E:\pyrx>python testrx.py
The value is Empty!
sequência_equal
Este operador irá comparar duas sequências de observáveis ou uma matriz de valores e retornar um observável com o valor verdadeiro ou falso.
Sintaxe
sequence_equal(second_seq, comparer=None)
Parâmetros
second_seq: observável ou array a ser comparado com o primeiro observável.
comparador: opcional. Função de comparação a ser aplicada para comparar valores em ambas as sequências.
Exemplo
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)))
Resultado
E:\pyrx>python testrx.py
The value is True
Exemplo: usando uma função de comparação
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)))
Resultado
E:\pyrx>python testrx.py
The value is True
skip_until
Este operador descartará os valores da fonte observável até que o segundo observável emita um valor.
Sintaxe
skip_until(observable)
Parâmetros
observável: o segundo observável que, ao emitir um valor, acionará a fonte observável.
Valor de retorno
Ele retornará um observável que terá valores da fonte observável até que o segundo observável emita um valor.
Exemplo
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)))
Resultado
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
Este operador retornará um observável com valores do observável de origem que satisfaça a condição passada.
Sintaxe
skip_while(predicate_func)
Parâmetros
predicate_func: Esta função será aplicada a todos os valores da fonte observável e retornará os valores que satisfaçam a condição.
Valor de retorno
Ele retornará um observável com valores da fonte observável que satisfaça a condição passada.
Exemplo
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)))
Resultado
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
pegue_até
Este operador descartará os valores da fonte observável após o segundo observável emitir um valor ou ser encerrado.
Sintaxe
take_until(observable)
Parâmetros
observável: o segundo observável que, ao emitir um valor, encerrará a fonte observável.
Valor de retorno
Ele retornará um observável, que terá valores da fonte observáveis apenas, quando o segundo observável usado emite um valor.
Exemplo
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)))
Neste exemplo, você obterá os valores emitidos do intervalo. Mas, uma vez que o cronômetro é concluído, ele impedirá que a fonte observável emita mais.
Resultado
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
take_while
Este operador descartará os valores da fonte observáveis quando a condição falhar.
Sintaxe
take_while(predicate_func)
Parâmetros
predicate_func: esta função avaliará cada valor da fonte observável.
Valor de retorno
Ele retornará um observável com valores até que a função de predicado seja satisfeita.
Exemplo
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)))
Resultado
E:\pyrx>python testrx.py
The value is 1
The value is 2
The value is 3
The value is 4