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.  I'm afraid you will have 
to accept being disappointed about this. 

More generally, there's a reason that the collection model has bidirectional 
and random access distinctions: important data structures are inherently not 
random access. Heroic attempts to present the illusion that they are 
randomly-accessible are not going to fly. These abstractions always break down, 
 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.  

This should be seen as a general design philosophy: Swift presents abstractions 
that harmonize with, rather than hide, the true nature of things.

>From me, the answer remains "no."

Sent from my moss-covered three-handled family gradunza

> On Feb 22, 2017, at 1:40 PM, Ted F.A. van Gaalen <[email protected]> 
> wrote:
> 
> What about having a (lazy)  Array<Character> property inside String?
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to