<div dir="ltr">A second try at improving syntax for properties, aiming for unification and consistency. This time I suggest to declare initialValue as an accessor, as it is really an accessor with shorthand syntax. For this and a couple of other ideas, please see <a href="https://gist.github.com/Anton3/f71a3e2ee29dffe1b9b2">the gist</a>.</div><div class="gmail_extra"><br><div class="gmail_quote">2016-02-14 15:41 GMT+03:00 Taras Zakharko <span dir="ltr">&lt;<a href="mailto:taras.zakharko@uzh.ch" target="_blank">taras.zakharko@uzh.ch</a>&gt;</span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">You are right! Ok, I’m convinced now as far as that goes :) Smart design. I didn’t think that far, I’m afraid.<br>
<br>
Thanks for explaining again,<br>
<br>
 T.<br>
<div class="HOEnZb"><div class="h5"><br>
&gt; On 14 Feb 2016, at 13:33, Brent Royal-Gordon &lt;<a href="mailto:brent@architechies.com">brent@architechies.com</a>&gt; wrote:<br>
&gt;<br>
&gt;&gt; This means that t1 and t2 should get two different initial values which is probably not what one would have intended.<br>
&gt;<br>
&gt; On the contrary, that&#39;s how initial values always work in Swift. Try it yourself: if you copy that code sample, delete the `[custom]`, and paste it into a Swift REPL (any version, as far as I know), it will print &quot;2&quot; and &quot;3&quot;.<br>
&gt;<br>
&gt; This semantic is important in several cases, like assigning unique IDs, but it&#39;s perhaps most crucial when you&#39;re initializing with a reference type. When you write something like this:<br>
&gt;<br>
&gt;       struct Foo {<br>
&gt;               let bar = NSMutableArray()<br>
&gt;       }<br>
&gt;<br>
&gt; Each `Foo` needs to get its own, separate instance of NSMutableArray, rather than all of them sharing a single array. Reevaluating the initial value for every initialization achieves that goal.<br>
&gt;<br>
&gt; Given that it&#39;s the way the rest of the language works, I really don&#39;t think it&#39;ll be particularly surprising if this semantic carries over to property behaviors, too.<br>
&gt;<br>
&gt; --<br>
&gt; Brent Royal-Gordon<br>
&gt; Architechies<br>
&gt;<br>
<br>
</div></div></blockquote></div><br></div>