RxPY – 条件和布尔运算符

RxPY – 条件和布尔运算符

all

这个操作符将检查源观测点的所有值是否满足给定的条件。

语法

all(predicate)

参数

predicate:布尔型。这个函数将被应用于所有的值,从源观测器中,并将根据给定的条件返回真或假。

返回值

返回值是一个观测值,它将具有布尔值true或false,基于应用于源观测值的所有值的条件。

示例 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)))

输出

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

例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)))

输出

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

contains

如果给定的值存在于源观测器的值中,这个操作符将返回一个观测器,其值为真或假。

语法

contains(value, comparer=None)

参数

值:要检查的值,如果在源观测点中存在的话。

comparer:可选的。这是一个比较器函数,将应用于源观测器中的值进行比较。

例子

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)))

输出

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

例2:使用比较器

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)))

输出

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

default_if_empty

如果源观测点为空,该操作符将返回一个默认值。

语法

default_if_empty(default_value=None)

参数

default_value:可选的。它将给出输出,如果没有传递任何东西作为default_value,则为None,否则它将给出传递的任何值。

返回值

如果源观测器为空,它将返回一个带有默认值的观测器。

示例 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)))

输出

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

例2:通过default_value

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)))

输出

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

sequence_equal

这个操作符将比较两个可观察变量的序列,或一个值的数组,并返回一个值为真或假的可观察变量。

语法

sequence_equal(second_seq, comparer=None)

参数

second_seq:要与第一个观察变量进行比较的观察变量或数组。

comparer:可选的。比较器函数,用于比较两个序列中的值。

例子

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)))

输出

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

示例:使用比较器函数

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)))

输出

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

skip_until

这个操作符将丢弃源观测点的值,直到第二个观测点发出一个值。

语法

skip_until(observable)

参数

observable:第二个观察变量,当它发射出一个值时,将触发源观察变量。

返回值

它将返回一个观测器,该观测器将拥有源观测器的值,直到第二个观测器发射出一个值。

例子

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)))

输出

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

这个操作符将返回一个带有满足所传递的条件的源观察变量的值的观察变量。

语法

skip_while(predicate_func)

参数

predicate_func:这个函数将被应用于源观测点的所有值,并返回满足条件的值。

返回值

它将返回一个包含源观测器中满足条件的值的观测器。

例子

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)))

输出

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

这个操作符将在第二个观测器发出一个值或被终止后丢弃源观测器的值。

语法

take_until(observable)

参数

observable:第二个观察变量,当它发射出一个值时,将终止源观察变量。

返回值

它将返回一个观测器,当使用的第二个观测器发射出一个值时,它将只有源观测器的值。

例子

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)))

在这个例子中,你将得到从范围内发射的值。但是,一旦定时器完成,它将停止源观测器的进一步发射。

输出

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

当条件失败时,这个操作符将丢弃源观测点的值。

语法

take_while(predicate_func)

参数

predicate_func:这个函数将评估源观测点的每个值。

返回值

它将返回一个带有数值的可观察变量,直到谓词函数满足为止。

例子

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)))

输出

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程