[swift-evolution] [SE-0011] Re-considering the replacement keyword for "typealias"
James Campbell
james at supmenow.com
Wed Dec 23 16:58:19 CST 2015
They are placeholders because in the protocol:
prtocotol Collection
{
placeholder Item
func first() -> Item?
{
}
}
Item is a placeholder for a concrete type, at this moment this is a concept
"A collection should return an item of a type" but we don't know what that
type is as its a plaeholder for a type.
therefore in:
class IntCollection: Collection
{
placeholder Item = Int
}
We are saying that the placeholder should now become a concrete type. In my
eyes associated types are nothing more than generics for protocols which in
turn could be argued is some kind of placeholder.
Associated type means nothing to me, associated to what ? A type could be
associated to many things like a variable, or a generic or whatever. A
placeholder to mean does what it says on the tin. If we moved to protocols
using a syntax closer to generics for classes then I think it would be
simpilar to grasp for beginners .
On Wed, Dec 23, 2015 at 9:35 PM, Jordan Rose <jordan_rose at apple.com> wrote:
> James or Erica (or someone else), can you explain what makes these types
> "placeholders"? I don't think of the other requirements in a protocol as
> "placeholder properties" or "placeholder methods".
>
> My explanation of these things is "When a particular type X conforms to a
> protocol, you can ask about the types that X uses to implement the
> requirements of the protocol". I guess we could call them "related types"
> instead of "associated types", but that doesn't seem significantly
> different.
>
> Jordan
>
>
> > On Dec 23, 2015, at 12:42, James Campbell via swift-evolution <
> swift-evolution at swift.org> wrote:
> >
> > The thing is associated type means nothing to me, it's too technical.
> Placeholder type I think would be better even if it's only what we called
> it in the documentation
> >
> > Sent from my iPhone
>
>
--
Wizard
james at supmenow.com
+44 7523 279 698
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20151223/e7ff4369/attachment.html>
More information about the swift-evolution
mailing list