<div dir="ltr"><div><br></div><div>Since swift v1.2, we can initialize `let` property in `init()` instead of being forced to give a value when declare it. This is great ! <br></div><div><br></div><div>But every time I run into the case such as the example below:</div><div><br></div><div>let view: UIView {</div><div>  didSet {</div><div>    /** </div><div>     * This time, `view` did set ( a.k.a initialized in case of `let` property), so I want to bind some other actions just after, such as `setBackgroundColor`. But actually I can&#39;t, compiler will complain that `let` declaration can not be observing properties. So I have to either move all these &quot;actions&quot; to `init()` or change `view` to a `var` property which is not necessary at all.</div><div>     */</div><div>  }</div><div>}</div><div><br></div><div>Actually in swift, I think it&#39;s quite commun issue that people run into a large `init()` method. This approach could make it way better in most cases.</div><div><br></div><div>So, I&#39;m wondering why not make `didSet` also available for `let` property, or maybe even better to add new keyword such as &quot;didInit&quot; which only get called for first set.</div><div><br></div><div>- Victor Wang</div></div>