[swift-users] Protocols, `mutating` and Value vs Reference Types.
Dave Abrahams
dabrahams at apple.com
Fri Apr 29 22:23:15 CDT 2016
on Fri Apr 29 2016, Hooman Mehr <hooman-AT-mac.com> wrote:
> Thank you very much for your response. I made the change in the gist. This takes
> me back to the same error that forced my into duplication path:
>
> “Cannot assign through subscript: ‘self’ is immutable” for the object case.
>
> The gist is self contained if you want to compile it yourself.
>
> Is this some kind of bug or the expected behavior?
Looks like a bug to me!
>
>
> On Apr 29, 2016, at 5:28 PM, Dave Abrahams via swift-users
> <swift-users at swift.org> wrote:
>
> on Fri Apr 29 2016, Hooman Mehr <swift-users-AT-swift.org> wrote:
>
> Hi,
>
> I am designing APIs that need to support both reference (class/object)
> and value
> types. I am running into restrictions of `mutating` keyword in my
> protocols and
> this is causing a lot of duplication of code. In order to understand
> what I mean
> please take a look at this gist.
>
> As you see, I have pairs of almost identical declarations: KeyValueStore
> vs
> KeyValueStoreObject, and AnyDictionaryStore vs AnyDictionaryStoreObject.
> This
> keeps rapidly growing as I am designing my APIs. Is there any sane way
> around
> this?
>
> protocol KeyValueStoreObject : class, KeyValueStore {}
> protocol AnyDictionaryStoreObject : class, AnyDictionaryStore {}
>
> would probably work for you.
>
> HTH,
>
> --
> Dave
>
> _______________________________________________
> swift-users mailing list
> swift-users at swift.org
> https://lists.swift.org/mailman/listinfo/swift-users
>
--
Dave
More information about the swift-users
mailing list