Avatar
自分はライブラリにして使ってます
10:55 AM
public mutating func consume<R>(_ f: (Wrapped) throws -> R) rethrows -> R? { guard let x = self else { return nil } self = nil return try f(x) }
10:55 AM
対のconsumeとセットできれいに収まることがまあまあある
10:55 AM
self.foo.consume { $0.shutdown() }