トップページ > プログラム > 2020年04月06日 > 2RUK7fME

書き込み順位&時間帯一覧

26 位/106 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000000000101



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
Rust part8

書き込みレス一覧

Rust part8
403 :デフォルトの名無しさん[sage]:2020/04/06(月) 22:57:49.62 ID:2RUK7fME
Vecとかのコンテナ系の使い方は大分変わるよ
例えばイベント駆動の何かを作るときには考えた方が良いかと思う
struct XEventSource {
listeners : Vec<Box<dyn Handler>>,
...
}
trait Handler { fn handle(ev: &XEvent) -> () }

impl XEventSource {
fn addLisnter(&mut self, listener : Box<dyn Handler>) -> () {
 self.listeners.push(listener);
}
fn emit(&self) -> () {
 XEvent ev = ...;
 for listener in listeners.iter() {
  listener.handle(&ev);
 }
}
}
みたいに作ると、利用者が好きに作った構造体でもHandlerをimplすればlistenersに足せる
ジェネリクスだとイベントリスナの実際の型1つしかaddできないので不便


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。