<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="">I don’t know if this is too different from what you are wanting to do. But this can done with Swift now.<div class=""><br class=""></div><div class=""><a href="https://github.com/joalbright/Inlinit" class="">https://github.com/joalbright/Inlinit</a> (can be used as a CocoaPod or with SwiftPM)</div><div class=""><div class=""><br class=""></div><div class=""><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><pre style="box-sizing: border-box; overflow: auto; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 14px; margin-top: 0px; margin-bottom: 0px; line-height: 1.45; padding: 16px; background-color: rgb(247, 247, 247); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; word-wrap: normal; word-break: normal; color: rgb(51, 51, 51);" class=""><span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">struct</span> Person: Inlinit {

    <span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">var</span> age: <span class="pl-c1" style="box-sizing: border-box; color: rgb(0, 134, 179);">Int</span> <span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">=</span> <span class="pl-c1" style="box-sizing: border-box; color: rgb(0, 134, 179);">0</span>
    <span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">var</span> name: <span class="pl-c1" style="box-sizing: border-box; color: rgb(0, 134, 179);">String</span>?

}

<span class="pl-c" style="box-sizing: border-box; color: rgb(150, 152, 150);">// initialize &amp; set properties</span>
<span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">var</span> me <span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">=</span> Person {

    $<span class="pl-c1" style="box-sizing: border-box; color: rgb(0, 134, 179);">0</span><span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">.</span>name <span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">=</span> <span class="pl-s" style="box-sizing: border-box; color: rgb(24, 54, 145);"><span class="pl-pds" style="box-sizing: border-box;">"</span>Jo<span class="pl-pds" style="box-sizing: border-box;">"</span></span>
    $<span class="pl-c1" style="box-sizing: border-box; color: rgb(0, 134, 179);">0</span><span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">.</span>age <span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">=</span> <span class="pl-c1" style="box-sizing: border-box; color: rgb(0, 134, 179);">32</span>

}

<span class="pl-c" style="box-sizing: border-box; color: rgb(150, 152, 150);">// update properties</span>
me <span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">&lt;-</span> {

    $<span class="pl-c1" style="box-sizing: border-box; color: rgb(0, 134, 179);">0</span><span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">.</span>age <span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">=</span> <span class="pl-c1" style="box-sizing: border-box; color: rgb(0, 134, 179);">30</span>
    $<span class="pl-c1" style="box-sizing: border-box; color: rgb(0, 134, 179);">0</span><span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">.</span>name <span class="pl-k" style="box-sizing: border-box; color: rgb(167, 29, 93);">=</span> <span class="pl-s" style="box-sizing: border-box; color: rgb(24, 54, 145);"><span class="pl-pds" style="box-sizing: border-box;">"</span>John<span class="pl-pds" style="box-sizing: border-box;">"</span></span>

}</pre><div class=""><br class=""></div></div></div></div><div class="">
<div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class="Apple-interchange-newline"><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class=""><font color="#8d8d8d" class="">Designer . Developer .  Nerd&nbsp;</font></span><font color="#464646" class=""><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">Jo Albright</span></font><br style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""></div>
</div>
<br class=""><div><blockquote type="cite" class=""><div class="">On Jan 10, 2016, at 10:05 PM, Angelo Villegas via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class="">
    <div id="compose" style="padding-left: 16px; padding-right: 16px; padding-bottom: 8px;" class="" applecontenteditable="true"><div class="">I think the "&lt;-" operator is better than ".=". This and cascade style assignment would be a good team for me.&nbsp;</div><div class=""><br class=""></div><div class="">object &lt;- {</div><div class="">&nbsp; &nbsp; prop1: value1,</div><div class="">&nbsp; &nbsp; prop2: value2</div><div class="">}<br class=""></div></div>
    <div class="gmail_quote">_____________________________<br class="">From: Tino Heth via swift-evolution &lt;<a dir="ltr" href="mailto:swift-evolution@swift.org" x-apple-data-detectors="true" x-apple-data-detectors-type="link" x-apple-data-detectors-result="0" class="">swift-evolution@swift.org</a>&gt;<br class="">Sent: Monday, January 11, 2016 7:12 AM<br class="">Subject: Re: [swift-evolution] Draft proposal: multi-property assignment .= operator<br class="">To: Michel Fortin &lt;<a dir="ltr" href="mailto:michel.fortin@michelf.ca" x-apple-data-detectors="true" x-apple-data-detectors-type="link" x-apple-data-detectors-result="3" class="">michel.fortin@michelf.ca</a>&gt;<br class="">Cc: swift-evolution &lt;<a dir="ltr" href="mailto:swift-evolution@swift.org" x-apple-data-detectors="true" x-apple-data-detectors-type="link" x-apple-data-detectors-result="4" class="">swift-evolution@swift.org</a>&gt;<br class=""><br class=""><br class="">Methods like "setValuesForKeysWithDictionary" can indeed be very handy — but its name is quite verbose, and imho that isn't that bad:<br class="">It's hard to guess the meaning of ".=" (I'd prefer "&lt;-" instead, but I guess depending on the background of the reader, this may be as hard to understand)<br class=""><br class="">A method with the functionality would be nice, and the possibility of compile time checking would make it better than the variant with dictionaries — but to make the check working, this method would need special treatment by the compiler, and that would appear strange to me.<br class=""><br class="">You've written about the older proposal sketches for cascading; have you seen the following idea?<br class="">object.{<br class="">        property1 = 1<br class="">        property2 = "a"<br class="">}<br class="">It is a less flexible in some aspect (the tuple in your draft could be created by a function call*), but is even more concise (not much, though) and can be used for more than assigning properties.<br class=""><br class="">Best regards,<br class="">Tino<br class=""><br class="">* If you continue with your draft, I suggest to explore this possibility further: With a function to turn members of an existing object into a tuple, or the option to selectively remove elements from a tuple, it could be a handy way to create copies.<br class="">_______________________________________________<br class="">swift-evolution mailing list<br class=""><a dir="ltr" href="mailto:swift-evolution@swift.org" x-apple-data-detectors="true" x-apple-data-detectors-type="link" x-apple-data-detectors-result="5" class="">swift-evolution@swift.org</a><br class=""><a dir="ltr" href="https://lists.swift.org/mailman/listinfo/swift-evolution" x-apple-data-detectors="true" x-apple-data-detectors-type="link" x-apple-data-detectors-result="6" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class=""><br class=""><br class=""></div>
  <img src="https://u2002410.ct.sendgrid.net/wf/open?upn=ZKcnqA3HtCYQN0SS0ldgu-2F0xW7y9BSqG-2BlBMnO2BvcY-2B8avtMqQ5TMZ-2B0H2EMLL0XGnc1Ao1XhTBq3aWVwRTz-2B3nj1-2BoaV-2BTW7g0ciK6bRTIhhKupooCKqy2EbYDyOO8LpqKU2E1yjyg1FTq20adK2bj4I3IcxQqzub-2BsrUjTCJEF6oz-2FM656hFnz7-2F-2FY1TQNvQTelOQ5iAVsw3pM3YrjA-3D-3D" alt="" width="1" height="1" border="0" style="height:1px !important;width:1px !important;border-width:0 !important;margin-top:0 !important;margin-bottom:0 !important;margin-right:0 !important;margin-left:0 !important;padding-top:0 !important;padding-bottom:0 !important;padding-right:0 !important;padding-left:0 !important;" class="">
_______________________________________________<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>