<div dir="ltr"><span style="color:rgb(33,33,33);font-family:&quot;helvetica neue&quot;,helvetica,arial,sans-serif;font-size:13px">Hello<span class="inbox-inbox-Apple-converted-space"> </span></span><span class="inbox-inbox-lG" style="outline:transparent dashed 1px;color:rgb(33,33,33);font-family:&quot;helvetica neue&quot;,helvetica,arial,sans-serif;font-size:13px;background-color:rgba(251,246,167,0.498039)">Swift</span><span style="color:rgb(33,33,33);font-family:&quot;helvetica neue&quot;,helvetica,arial,sans-serif;font-size:13px"><span class="inbox-inbox-Apple-converted-space"> </span>community,</span><div style="color:rgb(33,33,33);font-family:&quot;helvetica neue&quot;,helvetica,arial,sans-serif;font-size:13px"><br></div><div style="color:rgb(33,33,33);font-family:&quot;helvetica neue&quot;,helvetica,arial,sans-serif;font-size:13px">Here&#39;s a philosophy I&#39;ve struggled with since I started learning<span class="inbox-inbox-Apple-converted-space"> </span><span class="inbox-inbox-lG" style="outline:transparent dashed 1px;background-color:rgba(251,246,167,0.498039)">Swift</span>. In general, it seems that failable function calls return `Optional`s; however, `Array`s violate this rule by failing fast at runtime. I understand that subscripts can&#39;t throw, so the only way to fail fast is to do so at runtime. I also realize that there are many implementations of the `array[safe: index]` that I could choose to use instead. However, I do not understand why the default behavior is still to fail at runtime. Especially given how they are often introduced as a beginner-friendly data structure. Am I missing some language philosophy or major decision?</div><div style="color:rgb(33,33,33);font-family:&quot;helvetica neue&quot;,helvetica,arial,sans-serif;font-size:13px"><br></div><div style="color:rgb(33,33,33);font-family:&quot;helvetica neue&quot;,helvetica,arial,sans-serif;font-size:13px">Thanks</div></div>