初心者用kotlin

kotlinのメモです。

1229 views

rxKotlinのPublishSubjectの基礎の基礎

相変わらずrxkotlinの使い方に手こずる。
説明やサンプルを見ても、長くてよくわからないので短いサンプルを書いてみた。

import io.reactivex.subjects.PublishSubject

/*
PublishSubjectのサンプルプログラム
*/

fun main(args:Array<String>) {
    val pub: PublishSubject<String> = PublishSubject.create()

    pub.subscribe {
        //自分でイベント取得
        println(it)
    }

    pub.subscribe(){
        //上の処理はこうも書ける
        println(it)
    }
    //データを発行
    pub.onNext("hello")

    //データを発行
    pub.onNext("world")

    //sleepを入れておかないとmain関数が終わってしまう。
    Thread.sleep(10*1000)
}

そもそもPublishSubjectってなんだ?

SubjectとはSubscriberとObservableの二つの機能を併せ持ったもの。
SubscriberにあるようなonNextやonError、onCompleteといったメソッドが使え、Observableのようにsubscribeメソッドを呼び出すことができる。

解説

正直、勉強を始めたばかりでよくわかっていない。
間違えていたら教えてください。
サンプルを作って動かしてみた感じ、自分でイベントを発行(onNext)し、発行されたイベントを自分でキャッチできるもの?っぽい。
自信なし。
一応、説明を書くと、
8行目:PublishSubjectのインスタンス作成。
10行目~13行目:onNextで文字列が飛んで来たら、表示する購読関数を作成。
15行目~18行目:上に同じ。同じ関数をちょっと違う書き方で書いてみただけ。
20行目:onNext関数でhelloを送出。
23行目:onNext関数でworldを送出。
26行目:main関数を止めるために使っている。じゃないと、pub.subscribeが文字を受け取る前にプログラムが終了してしまう。

Page 20 of 36.

前のページ 次のページ



[添付ファイル]


お問い合わせ

プロフィール

マッスル

自己紹介

本サイトの作成者。
趣味:プログラム/水耕栽培/仮想通貨/激辛好き
プログラムは趣味と勉強を兼ねて、のんびり本サイトを作っています。
フレームワークはdjango。
仮想通貨はNEMが好き。
水耕栽培は激辛好きが高じて、キャロライナ・リーパーの栽培にチャレンジ中。

サイト/ブログ

https://www.osumoi-stdio.com/pyarticle/

ツイッター

@darkimpact0626