今天我們把跟響應式程式設計比較相關的重點部分搬到 Python 以及 Kotlin 上來實作
const 觀察移動 = rx
.timer(2000, tick)
.pipe(rx.take(15))
.pipe(rx.map(() => 向左走));
pip install rx
import rx
from rx import operators as ops
觀察移動 = rx.timer(2, tick).pipe(ops.take(15)).pipe(ops.map(lambda x: 向左走))
<dependency>
<groupId>io.reactivex.rxjava3</groupId>
<artifactId>rxjava</artifactId>
<version>3.1.5</version>
</dependency>
import io.reactivex.rxjava3.core.Observable.interval
val 觀察移動 = interval(2,1,TimeUnit.SECONDS).take(15).map { 向左走 }
觀察刀賊移動.pipe(rx.bufferTime(3000)).subscribe((events) => {
for (let e of events) {
map.on(e);
}
console.clear();
console.log(visualize(map));
});
觀察移動.pipe(ops.buffer_with_time(3)).subscribe(lambda e: print(map.on(e)))
觀察移動.buffer(3, TimeUnit.SECONDS).subscribe { events ->
for (e in events) println(map.on(e).visualize())
}
最後再次強調。雖然我們在範例中都是使用 Rx 系列的工具來實現響應式程式設計,但就如同之前介紹過的AOP在不同語言上有不同的工具或實現方式一樣,這並不代表響應式程式設計只能透過Rx系列工具來實現喔~