<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">I would find a list of actual C# set-only properties more relevant. It wouldn't make sense for a lot of these "set-only properties" in there to offer only a setter if they were made into properties.</div><div class=""><br class=""></div><div class="">In general, I consider properties to be the observable state of an object. When I write something to a property, I expect to be able to get it back. When I pass something as a method parameter, I don't expect that I'll be able to get it back later.</div><div class="">
<br class="Apple-interchange-newline"><span style="color: rgb(0, 0, 0); font-family: 'Lucida Grande'; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; display: inline !important; float: none;" class="">Félix</span>
</div>

<br class=""><div><blockquote type="cite" class=""><div class="">Le 3 févr. 2016 à 16:02:41, Jessy Catterwaul via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; a écrit :</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">I do not agree about the implication. A property can be gotten, set, or both, in at least C#, where I used a ton of set-only properties.</div><div class=""><br class=""></div><div class="">Here is a large list of properties that are set-only:</div><div class=""><a href="https://developer.apple.com/library/ios/documentation/Metal/Reference/MTLRenderCommandEncoder_Ref/index.html#//apple_ref/swift/intf/c:objc(pl)MTLRenderCommandEncoder" class="">https://developer.apple.com/library/ios/documentation/Metal/Reference/MTLRenderCommandEncoder_Ref/index.html#//apple_ref/swift/intf/c:objc(pl)MTLRenderCommandEncoder</a></div><div class=""><br class=""></div><div class="">Some of them require more than a single value, for setting. Tuple assignment or named subscripts are the best way I currently know to handle that. Having them be functions that begin with “set” and take arguments feels archaic and not specific enough, to me.</div><div class=""><br class=""></div><div class=""><div style="margin: 0px; line-height: normal;" class=""><div style="margin: 0px; line-height: normal;" class=""><div style="font-family: Menlo; font-size: 14px; margin: 0px; line-height: normal;" class=""><span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2" class="">func</span> setStencilFrontReferenceValue(frontReferenceValue: <span style="font-variant-ligatures: no-common-ligatures; color: #703daa" class="">UInt32</span>,</div><div style="font-family: Menlo; font-size: 14px; margin: 0px; line-height: normal;" class="">&nbsp;&nbsp; backReferenceValue: <span style="font-variant-ligatures: no-common-ligatures; color: #703daa" class="">UInt32</span></div><div style="font-family: Menlo; font-size: 14px; margin: 0px; line-height: normal;" class="">)</div><div style="font-family: Menlo; font-size: 14px; margin: 0px; line-height: normal;" class=""><div style="margin: 0px; line-height: normal; color: rgb(49, 89, 93);" class="">setStencilFrontReferenceValue<span style="" class="">(</span><span style="font-variant-ligatures: no-common-ligatures; color: #272ad8" class="">0</span><span style="" class="">, backReferenceValue: </span><span style="font-variant-ligatures: no-common-ligatures; color: #272ad8" class="">1</span><span style="" class="">)</span></div></div><div style="font-family: Menlo; font-size: 14px; margin: 0px; line-height: normal;" class=""><br class=""></div><div style="margin: 0px; line-height: normal; min-height: 16px;" class="">versus</div><div style="font-family: Menlo; font-size: 14px; margin: 0px; line-height: normal; min-height: 16px;" class=""><br class=""></div><div style="font-family: Menlo; font-size: 14px; margin: 0px; line-height: normal;" class=""><span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2" class="">var</span> stencilReferenceValues: (front: <span style="font-variant-ligatures: no-common-ligatures; color: #703daa" class="">UInt32</span>, back: <span style="font-variant-ligatures: no-common-ligatures; color: #703daa" class="">UInt32</span>) {set}</div><div style="font-family: Menlo; font-size: 14px; margin: 0px; line-height: normal; color: rgb(79, 129, 135);" class="">stencilReferenceValues<span style="" class=""> = (front: </span><span style="font-variant-ligatures: no-common-ligatures; color: #272ad8" class="">0</span><span style="" class="">, back: </span><span style="font-variant-ligatures: no-common-ligatures; color: #272ad8" class="">1</span><span style="" class="">)</span></div><div style="font-family: Menlo; font-size: 14px; margin: 0px; line-height: normal; min-height: 16px;" class=""><br class=""></div><div style="font-family: Menlo; font-size: 14px; margin: 0px; line-height: normal; min-height: 16px;" class=""><br class=""></div><div style="font-family: Menlo; font-size: 14px; margin: 0px; line-height: normal;" class=""><span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2" class="">func</span> setVertexSamplerState(sampler: <span style="font-variant-ligatures: no-common-ligatures; color: #703daa" class="">MTLSamplerState</span>?, atIndex index: <span style="font-variant-ligatures: no-common-ligatures; color: #703daa" class="">Int</span>)</div><div style="font-family: Menlo; font-size: 14px; margin: 0px; line-height: normal; min-height: 16px;" class=""><div style="margin: 0px; line-height: normal;" class=""><span style="font-variant-ligatures: no-common-ligatures; color: #31595d" class="">setVertexSamplerState</span>(someState, atIndex <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8" class="">0</span>)</div></div><div style="font-family: Menlo; font-size: 14px; margin: 0px; line-height: normal; min-height: 16px;" class=""><br class=""></div><div style="font-family: Menlo; font-size: 14px; margin: 0px; line-height: normal; min-height: 16px;" class=""><span style="font-family: Helvetica; font-size: 12px;" class="">versus</span></div><div style="font-family: Menlo; font-size: 14px; margin: 0px; line-height: normal; min-height: 16px;" class=""><br class=""></div><div style="font-family: Menlo; font-size: 14px; margin: 0px; line-height: normal;" class=""><span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2" class="">subscript</span> vertexSamplerState(index: Int): MTLSamplerState? {set}</div><div style="font-family: Menlo; font-size: 14px; margin: 0px; line-height: normal;" class="">vertexSamplerState[<span style="font-variant-ligatures: no-common-ligatures; color: #272ad8" class="">0</span>] = someState</div><div style="font-family: Menlo; font-size: 14px;" class=""><br class=""></div></div></div></div><div class=""><br class=""></div><div class="">The former options, I feel are not Swift, but C masquerading as Swift.</div><div class=""><br class=""></div><div class=""><br class=""></div>
&gt; Cc:swift-<a href="mailto:evolution@swift.org" class="">evolution@swift.org</a><br class="">&gt; Subject:[swift-evolution] Support for pure setters<br class="">&gt; Date:February 3, 2016 at 3:31:16 PM EST<br class="">&gt; <br class="">&gt; <br class="">&gt; <br class="">&gt; &gt; On Feb 3, 2016, at 12:21 PM, Jessy Catterwaul&lt;<a href="mailto:mr.jessy@gmail.com" class="">mr.jessy@gmail.com</a>&gt;wrote:<br class="">&gt; &gt; <br class="">&gt; &gt; Joe, to attempt to set foo.x doesn’t make sense. If foo cannot be gotten, a property of it will be inaccessible for getting or setting.<br class="">&gt; &gt; <br class="">&gt; &gt; Set-only properties are always computed, and only used via assignment.<br class="">&gt; &gt; <br class="">&gt; &gt; e.g. foo = value<br class="">&gt; I understand that. If that's all you're allowed to do with a set-only property, then this is just sugar over 'setFoo(value)', and I think the sugar implies you could do more with 'foo' than you really can. I don't think it's worth the complexity.<br class="">&gt; <br class="">&gt; -Joe<br class="">&gt; <br class="">&gt; <br class="">&gt;<span class="Apple-converted-space">&nbsp;</span>

</div>_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class="">https://lists.swift.org/mailman/listinfo/swift-evolution<br class=""></div></blockquote></div><br class=""></body></html>