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