I've been thinking a little more about the usage. If you don't want to do the @
thing, suppose you instead use a behavior by specifying it in the block:
var foo: Bar {
lazy { Bar() } // This property will be lazy, and
initialized/re-iniitalized with this block
synchronized // This property will be synchronized (you
could provide a block to give a queue, but the default's fine here)
logged // Calls are logged
}
You might only be able to specify one closure per behavior, so willSet and
didSet would have to be different behaviors, but I don't think that's
necessarily a bad thing—it'd be nice if `observable` could be saved for
arbitrary third-party observation (that is, a KVO replacement).
It's even possible that you could implement `get` and `set` themselves as
behaviors! That would be pretty neat.
--
Brent Royal-Gordon
Architechies
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution