よくRxSwiftを使っていると、流れてきた値を使わずにVoidとして次に流す時なんかに、
map { _ in }
と書くことがあります。
public var viewWillAppear: Observable<Void> {
return sentMessage(#selector(UIViewController.viewWillAppear(_:)))
.map { _ in } // { _ in () } や { _ in Void() } でも同様
.shareReplay(1)
}
ただ、これ毎回書くのも面倒になってきたり、ダサいなぁ…って思ってきたら、
// ※toplevelで定義すること
// 明示的にVoidを返すと丁寧に定義した場合
public func void<T>(_: T) -> Void {
return Void()
}
// 省略した場合
public func void<T>(_: T) {}
toplevel関数として void を定義してあげて、
public var viewWillAppear: Observable<Void> {
return sentMessage(#selector(UIViewController.viewWillAppear(_:)))
.map(void)
.shareReplay(1)
}
こんな感じで使ってあげるとちょっぴり幸せになれるかも。