[swift-evolution] two protocols with the same method name
品雪
pinxue at gmail.com
Fri Jan 8 21:26:09 CST 2016
That's totally wrong!
protocol Marriageable {
var ringImageFileName: String? { get set } // File name
of image of this person's wedding ring.
}
protocol CallReceivable {
var ringtoneFileName: String? { get set } // File name of
ringtone to be used for this person.
}
On Sat, Jan 9, 2016 at 11:09 AM, Brent Royal-Gordon via swift-evolution <
swift-evolution at swift.org> wrote:
> > I don’t really get what you are driving at.
>
> The point is that, although `A` and `B` both require properties with the
> same name, they expect different semantics from that property. Let's maybe
> give these more concrete names so you can understand the idea:
>
> protocol Marriageable {
> var ring: String? { get set } // File name of image of
> this person's wedding ring.
> }
> protocol CallReceivable {
> var ring: String? { get set } // File name of ringtone
> to be used for this person.
> }
>
> struct Person: Marriageable, CallReceivable {
> var ring: String?
> }
>
> Of course a person is marriageable and can this have "a ring", and of
> course you can also receive a call from them and they can thus have "a
> ring". But in reality, the "ring" that satisfies one of these things will
> not work for the other. If your best friend gets married and you add an
> image of the ring, then the next time your friend calls you, the phone
> ringing screen will try to play a JPEG as an MP3.
>
> The "ring" example is, of course, slightly contrived, but I'm sure you can
> imagine a similar problem with real names, where you end up using the same
> term for two different and incompatible things.
>
> What the OP is basically asking is, when Swift sees the same type
> conforming to Marriageable and CallReceivable, should it optimistically
> assume that the `ring` properties they both require are compatible and
> allow the code to pass through without comment? Or should it
> pessimistically assume that the `ring` properties are incompatible and emit
> a warning or error about them?
>
> --
> Brent Royal-Gordon
> Architechies
>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
>
--
Best Regards!
Yang Wu
--------------------------------------------------------
Location: Pudong, Shanghai, China.
EMail : pinxue at gmail.com
Website: http://www.time2change.mobi http://rockplayer.com
Twitter/Weibo : @pinxue
<http://www.pinxue.net>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160109/d8fd8c19/attachment.html>
More information about the swift-evolution
mailing list