<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
<p style="font-family: Calibri, Arial, Helvetica, sans-serif;"><span style="font-size: 12pt; white-space: pre-wrap;">I only see the benefits on this.</span><br>
</p>
<div id="divtagdefaultwrapper" style="font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
<pre style="font-family: Calibri, Arial, Helvetica, sans-serif; white-space: pre-wrap;"><font face="Calibri, Arial, Helvetica, sans-serif" style="font-size:12pt"></font></pre>
<pre><ol style="font-family: Calibri, Arial, Helvetica, sans-serif;"><li><span style="font-size:12pt; font-family:Calibri,Arial,Helvetica,sans-serif; white-space:pre-wrap">We don't have to store all states in one file. States can be stored separately. So, we can write code in more composition style.</span><br></li><li><font face="Calibri, Arial, Helvetica, sans-serif"><span style="white-space:pre-wrap">We can add new states to the existing type. Not just NSObject subclass with associated object.</span></font></li></ol><div><font face="Calibri, Arial, Helvetica, sans-serif"><span style="white-space: pre-wrap;"><br></span></font></div><div style="font-family: Calibri, Arial, Helvetica, sans-serif;"><table width="100%" cellspacing="0" style="font-family:Calibri,Arial,Helvetica,sans-serif; white-space:normal; border-collapse:collapse; width:935px; border:1px solid rgb(198,198,198)"><tbody><tr><td style="width:932px; border:1px solid rgb(198,198,198)"><font face="Menlo" size="1" color="#BB2CA2"><span style="font-size:12px">protocol</span></font><font face="Menlo" size="1"><span style="font-size:12px"> </span></font><font face="Menlo" size="1" color="#4F8187"><span style="font-size:12px">Incrementer</span></font><font face="Menlo" size="1"><span style="font-size:12px">{</span></font><div style="margin:0px"><font face="Menlo" size="1"><span style="font-size:12px">
<font color="#BB2CA2">func</font> increase()</span></font></div><div style="margin:0px"><font face="Menlo" size="1"><span style="font-size:12px">}<br></span></font></div><div style="margin:0px"><font face="Menlo" size="1"><span style="font-size:12px"><br></span></font></div><div style="margin:0px"><font face="Menlo" size="1" color="#4F8187"><span style="font-size:12px"><font color="#BB2CA2">extension</font><font color="black"> </font>Incrementer<font color="black">{</font></span></font></div><div style="margin:0px"><font face="Menlo" size="1" color="#4F8187"><span style="font-size:12px"><font color="black"><br></font></span></font></div><div style="margin:0px"><font face="Menlo" size="1"><span style="font-size: 12px;"><font color="red" style="color: rgb(0, 132, 0);">
</font></span></font><font face="Menlo" size="1" color="#008400"><span style="font-size:12px"><font color="#BB2CA2">var</font><font color="black"> count = </font><font color="#272AD8">1 </font></span></font><span style="color: rgb(0, 132, 0); font-family: Menlo; font-size: 12px;">//
allows stored properties</span></div><div style="margin:0px"><font face="Menlo" size="1"><span style="font-size:12px"> </span></font></div><div style="margin:0px"><font face="Menlo" size="1"><span style="font-size:12px"> <font color="#BB2CA2">func</font> increase(){<br></span></font></div><div style="margin:0px"><font face="Menlo" size="1"><span style="font-size:12px">
<font color="#3D1D81">print</font>(count)<br></span></font></div><div style="margin:0px"><font face="Menlo" size="1"><span style="font-size:12px"> count = count + <font color="#272AD8">1</font></span></font></div><div style="margin:0px"><font face="Menlo" size="1"><span style="font-size:12px">
}<br></span></font></div><div style="margin:0px"><font face="Menlo" size="1"><span style="font-size:12px"> </span></font></div><div style="margin:0px"><font face="Menlo" size="1"><span style="font-size:12px">}<br></span></font></div><div style="margin:0px"></div><div style="margin:0px"><br></div></td></tr></tbody></table></div></pre>
<pre style="font-family: Calibri, Arial, Helvetica, sans-serif; white-space: pre-wrap;"><br></pre>
<pre style="font-family: Calibri, Arial, Helvetica, sans-serif; white-space: pre-wrap;">><i> On Dec 8, 2015, at 10:51 AM, Kevin Kachikian via swift-evolution <<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" id="LPlnk107781" title="https://lists.swift.org/mailman/listinfo/swift-evolution
Cmd+Click or tap to follow the link">swift-evolution at swift.org</a>> wrote:
</i>><i>
</i>><i> I’d like to proposal to the Swift community and discuss the advantages and disadvantages of adding modifiable properties to extensions (in addition to the already existing computed properties, instance methods, subscripts, etc.):
</i>><i>
</i>><i> extension SomeType {
</i>><i>         
</i>><i>         var aNewProperty: Int
</i>><i>         var anotherVariable: String
</i>><i>         var aThirdOne: MyStruct</i></pre>
</div>
</div>
</body>
</html>