<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div>Equally a non-starter. All known threadsafe schemes that require caches to be updated upon non-mutating operations have horrible performance issues, and further this would penalize all string code by reserving space for the cache and filling it even for the vast majority of operations that don't require random access. Trust me, we've gotten lots of such suggestions and thought through the implications of each one very carefully. &nbsp;I'm afraid you will have to accept being disappointed about this.&nbsp;</div><div id="AppleMailSignature"><br></div><div id="AppleMailSignature">More generally, there's a reason that the collection model has bidirectional and random access distinctions: important data structures are <u>inherently</u> not random access. Heroic attempts to present the illusion that they are randomly-accessible are not going to fly. These abstractions always break down, &nbsp;leaking the true non-random-access nature in often unpredictable ways, penalizing lots of code for the sake of a very few use-cases, and introducing complexity that is hard for the optimizer to digest and makes it painful (sometimes impossible) to grow and evolve the library. &nbsp;</div><div id="AppleMailSignature"><br></div><div id="AppleMailSignature">This should be seen as a general design philosophy: <i>Swift presents abstractions that harmonize with, rather than hide, the true nature of things</i>.</div><div id="AppleMailSignature"><br></div><div id="AppleMailSignature">From me, the answer remains "no."</div><div id="AppleMailSignature"><br><div>Sent from my moss-covered three-handled family gradunza</div></div><div><br>On Feb 22, 2017, at 1:40 PM, Ted F.A. van Gaalen &lt;<a href="mailto:tedvgiosdev@gmail.com">tedvgiosdev@gmail.com</a>&gt; wrote:<br><br></div><blockquote type="cite"><div>What about having a (lazy) &nbsp;Array&lt;Character&gt; property inside String?</div></blockquote></body></html>