Zaten daha önce tanışmış olduğumuz Vec<T>
ve String
gibi akıllı işaretçilere bir kez daha bakalım.
Bellek üzerindeki bazı baytlara sahip olan Vec<T>
akıllı bir işaretçi olmasına rağmen, derleyicinin bu baytlarda ne olduğuna dair en ufak bir fikri yoktur. Yönettiği bellek bölgesinden öğe elde etmenin anlamını yorumlayan akıllı işaretçi, bu baytlarda bulunan veri yapısının nerede başlayıp bittiğini takip edip, ham işaretçiyi bir_vektor[3] benzeri, kullanıcı dostu, hoş ve temiz bir arayüzle kullanıbilecek şekilde veri yapılarına aktarır.
Benzer şekilde String
türü de bellek bölgesindeki baytları izleyerek, kendisine yazılan içeriğin daima geçerli utf-8
olmasını sağlar. Ve bu bellek bölgesinin &str
türü içine aktarılmasına yardımcı olur.
Bu veri yapılarının her ikisi de işlerini gerçekleştirebilmek için, ham işaretçilerin referanslarına güvensiz kodlar aracılığıyla ulaşmaya çalışır.
Bellek ayrıntıları: