[swift-evolution] Overriding computed properties with let constants?
Adrian Zubarev
adrian.zubarev at devandartist.com
Sat Apr 23 14:30:08 CDT 2016
I already see the problem here:
class A { var x: Int { return 42 } }
class B: A { override let x = 7 } // assume that will work
class C: B { override var x: Int { /* wait this wont work anymore */ } }
You won’t be able to override an immutable constant.
I don’t like such a change.
--
Adrian Zubarev
Sent with Airmail
Am 23. April 2016 bei 21:19:27, Roman Zhikharevich via swift-evolution (swift-evolution at swift.org) schrieb:
I think, it could be a good idea to make computed properties overridable with let constants.
Something like this:
class Parent {
var x: Int {
let x = 42
/*
* Compute x...
*/
return x
}
}
class Child: Parent {
/*
* Sometimes you need to override computed properties with simple constants.
* This is currently done like this.
*/
//override var x: Int {return 7}
/*
* But this looks neater.
* Currently this gives "error: cannot override with a stored property 'x'".
*/
override let x = 7
}
_______________________________________________
swift-evolution mailing list
swift-evolution at swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160423/5529a3aa/attachment.html>
More information about the swift-evolution
mailing list