<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
<div>The problem with both solutions is that I lose the type information. Instead of i being UInt8 it is Int or UInt.</div><div><br /></div><div>This is one solution I came up with:</div><div><br /></div><div>extension UInt8 {</div><div>&nbsp; &nbsp; static var allValues: [UInt8] {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; var v: [UInt8] = []</div><div>&nbsp; &nbsp; &nbsp; &nbsp; for i in 0..&lt;UInt8.max {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; v.append(i)</div><div>&nbsp; &nbsp; &nbsp; &nbsp; }</div><div>&nbsp; &nbsp; &nbsp; &nbsp; v.append(UInt8.max)</div><div>&nbsp; &nbsp; &nbsp; &nbsp; return v</div><div>&nbsp; &nbsp; }</div><div>}</div><div><br /></div><div>print(UInt8.allValues)</div><div><br /></div><div>In other words, loop from 0 to 254 and then add 255 manually at the end.</div><div><br /></div><div>Is there currently no simpler way to do this in Swift?</div><div><br /></div><div>Idea for the Swift developers: Create a Bounded protocol that UInt8 (and the other integer types) conform to. Then add a &quot;allValues&quot; type method in that protocol. And also put .min and .max into that protocol. Currently it seems like .min and .max are not a part of any particular protocol.</div><br /><br />8. Apr 2016 14:35 by <a href="mailto:swift-users@swift.org" target="_blank">swift-users@swift.org</a>:<br /><br /><blockquote class="tutanota_quote" style="border-left: 1px solid #93A3B8; padding-left: 10px; margin-left: 5px;"><div>You could cast the min and max values to an Int and iterate through the Int range:</div><div><br /></div><div><div style="margin: 0px ; font-size: 16px ; line-height: normal ; font-family: &quot;inconsolata&quot; ; color: rgb( 164 , 176 , 177 )"><span style="color: #de5194">let</span><span> min = </span><span style="color: #7f87cf">Int</span><span>(</span><span style="color: #7f87cf">UInt8</span><span>.min)</span></div><div style="margin: 0px ; font-size: 16px ; line-height: normal ; font-family: &quot;inconsolata&quot; ; color: rgb( 164 , 176 , 177 )"><span style="color: #de5194">let</span><span> max = </span><span style="color: #7f87cf">Int</span><span>(</span><span style="color: #7f87cf">UInt8</span><span>.max)</span></div></div><div style="margin: 0px ; font-size: 16px ; line-height: normal ; font-family: &quot;inconsolata&quot; ; color: rgb( 164 , 176 , 177 )"><span><br /></span></div><div style="margin: 0px ; font-size: 16px ; line-height: normal ; font-family: &quot;inconsolata&quot; ; color: rgb( 164 , 176 , 177 )"><span></span><div style="margin: 0px ; line-height: normal"><span style="color: #de5194">for</span><span> i </span><span style="color: #de5194">in</span><span> </span><span style="color: #2fafa9">min</span><span>...</span><span style="color: #2fafa9">max</span><span> {</span></div><div style="margin: 0px ; line-height: normal"><span>&nbsp; &nbsp; </span><span style="color: #2c9edb">print</span><span>(i)</span></div><div style="margin: 0px ; line-height: normal"><span>}</span></div></div><div><br /></div><div>While this will work it seems like a hack to me and Milos’ solution is more elegant…</div><div><br /></div><div>-Pete</div><div><br /></div><br /><div><blockquote class="thunderbird_quote" style="border-left: 1px solid #93a3b8 ; padding-left: 10px ; margin-left: 5px"><div>On Apr 8, 2016, at 5:50 AM, tuuranton--- via swift-users &lt;<a href="mailto:swift-users@swift.org" target="_blank">swift-users@swift.org</a>&gt; wrote:</div><br class="Apple-interchange-newline" /><div>
  
    
  
  <div>
I forgot to mention that I really would like to have i have type UInt8 within the loop. And since i is UInt8 it makes sense it should be able to take the values UInt8.min and UInt8.max (and all the values between).<br /><br />8. Apr 2016 11:48 by <a href="mailto:swift-users@swift.org" target="_blank">swift-users@swift.org</a>:<br /><br /><blockquote class="tutanota_quote" style="border-left: 1px solid #93A3B8; padding-left: 10px; margin-left: 5px;"><p style="font-size: 11px ; line-height: normal ; font-family: &quot;menlo&quot;">print(UInt8.min) //0</p><p style="font-size: 11px ; line-height: normal ; font-family: &quot;menlo&quot;">print(UInt8.max) //255</p><p style="font-size: 11px ; line-height: normal ; font-family: &quot;menlo&quot;"><br /></p><p style="font-size: 11px ; line-height: normal ; font-family: &quot;menlo&quot;">//Is there an easy way to loop between all values</p><p style="font-size: 11px ; line-height: normal ; font-family: &quot;menlo&quot;">//between (and including both) UInt8.min and UInt8.max?</p><p style="font-size: 11px ; line-height: normal ; font-family: &quot;menlo&quot;"><br /></p><p style="font-size: 11px ; line-height: normal ; font-family: &quot;menlo&quot;">//This doesn't work.</p><p style="font-size: 11px ; line-height: normal ; font-family: &quot;menlo&quot;">//Runtime crash because UInt8.max has no successor.</p><p style="font-size: 11px ; line-height: normal ; font-family: &quot;menlo&quot;">for i in UInt8.min...UInt8.max {</p><p style="font-size: 11px ; line-height: normal ; font-family: &quot;menlo&quot;">&nbsp; &nbsp; print(i)</p><p style="font-size: 11px ; line-height: normal ; font-family: &quot;menlo&quot;">}</p><div><br /></div></blockquote>  </div>

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