Oh, it's a computed property! Got it, I thought you meant its value was 
computed in the init and never changed again.

Sent from my iPhone

> On Aug 2, 2016, at 19:01, Rick Mann <rm...@latencyzero.com> wrote:
> 
> It complains if I make it a let because computed properties must be var. 
> Because it's a protocol, it can't be stored (even though it can be stored in 
> the conforming type).
> 
> If I make it { get }, I can't set it in the extensions init() method.
> 
> I guess I could make it private set (not sure of the syntax for that), but it 
> still doesn't have let semantics.
> 
>> On Aug 2, 2016, at 16:28 , David Sweeris <daveswee...@mac.com> wrote:
>> 
>> If I understand things correctly, you *can* make uuid a let because you’re 
>> allowed to set them (once) during init functions.
>> 
>> - Dave Sweeris
>> 
>>> On Aug 2, 2016, at 6:22 PM, Rick Mann via swift-users 
>>> <swift-users@swift.org> wrote:
>>> 
>>> I'm trying to define a protocol that has a read-only, immutable member 
>>> "uuid" that can be set in the init() method, but I'm having trouble. I have 
>>> this:
>>> 
>>> protocol
>>> Element
>>> {
>>>  var uuid : { get }
>>> }
>>> 
>>> extension
>>> Element
>>> {
>>>  init(...)
>>>  {
>>>    self.uuid = ...
>>>  }
>>> }
>>> 
>>> I can't make it let, because they're computed.
>>> 
>>> I'm realizing from other stuff that I really can't have the init(...) 
>>> method in the extension, anyway. But I'd really like to be able to specify 
>>> a let member in the protocol. What's the best way to have that effect?
>>> 
>>> In my semantics, an Element has a uniquely-assigned uuid. It might be 
>>> generated when the object is instantiated, or it might be deserialized from 
>>> disk, but once that's done, it can never change. How do I express that?
>>> 
>>> Thanks,
>>> 
>>> -- 
>>> Rick Mann
>>> rm...@latencyzero.com
>>> 
>>> 
>>> _______________________________________________
>>> swift-users mailing list
>>> swift-users@swift.org
>>> https://lists.swift.org/mailman/listinfo/swift-users
> 
> 
> -- 
> Rick Mann
> rm...@latencyzero.com
> 
> 
_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to