Hello Yogev,

I think your question belongs to the swift-users mailing list (quoting 
https://lists.swift.org/mailman/listinfo):

- swift-evolution: Discussion of the evolution of Swift, including new language 
features and new APIs.
- swift-users: For users to get help with or ask questions about Swift or its 
related tools

Gwendal Roué

> Le 17 avr. 2016 à 10:52, Yogev Sitton via swift-evolution 
> <[email protected]> a écrit :
> 
> I have a class that is conforming to a protocol with a method that requires a 
> specific return type.
> In case I want to return a subclass of the return type I am forced to use an 
> associatedtype that feels like a hack.
> 
> As an example:
> 
> protocol MyShapeProtocol {
>     func make() -> Shape?
> }
> 
> class Circle : Shape {}
> 
> class CircleMaker : MyShapeProtocol{
>     func make() -> Circle? {
>         return Circle()
>     }
> }
> 
> This will not work.
> For that to work I’ll need to use toe associatedtype “hack”:
> 
> protocol MyShapeProtocol {
>     associatedtype ShapeReturnType : Shape
>     func make() -> ShapeReturnType?
> }
> 
> class Circle : Shape {}
> 
> class CircleMaker : MyShapeProtocol{
>     func make() -> Circle? {
>         return Circle()
>     }
> }
> 
> Is there a real value in adding the associatedtype line?
> _______________________________________________
> swift-evolution mailing list
> [email protected]
> https://lists.swift.org/mailman/listinfo/swift-evolution

_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to