0Pricing
Learn Rust Coding · Ders

pub ve Görünürlük

Erişimi denetleyin

pub ve Görünürlük, CoddyKit'te ücretsiz bir Learn Rust Coding dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Learn Rust Coding öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Learn Rust Coding kursu toplamda 4 dersten oluşur.

Varsayılan Olarak Özel

Rust'ta bir modülün içindeki her şey varsayılan olarak özeldir. pub ile izin vermediğiniz sürece diğer modüller bunları göremez.

Bu güvenli varsayılan, uygulama ayrıntılarını siz bilerek dışarı açana kadar gizli tutar.

pub İşlevleri

Bir işlevi pub olarak işaretlemek, onun modülünün dışından çağrılabilmesini sağlar. Bu işaret olmadan çağrı derlenemez.

mod math {
    pub fn square(x: i32) -> i32 {
        x * x
    }
}

fn main() {
    println!("{}", math::square(5));
}

Özel Yardımcılar Gizli Kalır

Dahili yardımcıları özel tutarken herkese açık bir API sunabilirsiniz. Herkese açık işlev özel olanı çağırabilir; ancak dışarıdan çağrılamaz.

mod math {
    fn double(x: i32) -> i32 { x * 2 }
    pub fn quadruple(x: i32) -> i32 { double(double(x)) }
}

fn main() {
    println!("{}", math::quadruple(3));
}

pub Yapılar Alanları Gizler

Bir yapıyı pub yapmak türü dışarı açar; ancak alanları da tek tek pub olarak işaretlenmedikçe özel kalır.

Bu, yapının nasıl oluşturulacağını ve değiştirileceğini denetlemenizi sağlar.

mod model {
    pub struct User {
        pub name: String,
        age: u32,
    }
    impl User {
        pub fn new(name: String, age: u32) -> User {
            User { name, age }
        }
        pub fn age(&self) -> u32 { self.age }
    }
}

fn main() {
    let u = model::User::new(String::from("Sam"), 28);
    println!("{} is {}", u.name, u.age());
}

Alanlar Neden Gizlenir?

Özel alanlar değişmez koşulları güvence altına alır. Çağıranlar yapıcınızı ve yöntemlerinizi kullanmak zorunda kalır; böylece girdileri doğrulayabilir ve dahili düzeni daha sonra kullanıcıları bozmadan değiştirebilirsiniz.

pub Numaralandırmaları Her Şeyi Dışarı Açar

Yapıların aksine, pub bir numaralandırmanın tüm seçeneklerini otomatik olarak herkese açık hâle getirir. Seçeneklerin ayrı bir görünürlük düzeyi yoktur.

mod traffic {
    pub enum Light {
        Red,
        Yellow,
        Green,
    }
}

fn main() {
    let l = traffic::Light::Green;
    let go = matches!(l, traffic::Light::Green);
    println!("go = {}", go);
}

pub(crate): Crate Genelinde

pub(crate), bir ögeyi aynı crate içindeki her yerde görünür kılar; ancak crate'inize bağımlı dış crate'lerde görünür kılmaz.

Modüller arasında paylaşılan dahili API'ler için idealdir.

mod config {
    pub(crate) fn default_port() -> u16 {
        8080
    }
}

fn main() {
    println!("{}", config::default_port());
}

pub(super): Yalnızca Üst Modül

pub(super), bir ögeyi yalnızca üst modüle açar. Bu, tam pub erişiminden daha dar bir yetkidir.

mod outer {
    pub fn run() {
        inner::helper();
    }
    mod inner {
        pub(super) fn helper() {
            println!("visible to parent only");
        }
    }
}

fn main() {
    outer::run();
}

pub use ile Yeniden Dışa Aktarma

pub use bir ögeyi yeniden dışa aktararak çağıranların ona daha kısa veya kullanışlı bir yoldan ulaşmasını sağlar. Bu, temiz bir herkese açık API oluşturmanıza yardımcı olur.

mod deep {
    pub mod nested {
        pub fn ping() {
            println!("pong");
        }
    }
    pub use nested::ping;
}

fn main() {
    deep::ping();
}

Herkese Açık API Tasarlama

İşi yapmak için gereken en küçük yüzeyi dışa açın. Yardımcıları özel tutun, yapı alanlarını yöntemlerin arkasına gizleyin ve dahili paylaşım için pub(crate) kullanın.

Sıkı bir API'yi kullanıcıları bozmadan geliştirmek daha kolaydır.

Görünürlük Düzeylerinin Özeti

En kısıtlayıcıdan en az kısıtlayıcıya:

  • default (modüle özel)
  • pub(super) — üst modülde görünür
  • pub(crate) — crate genelinde görünür
  • pub — her yerde görünür

Hızlı Kontrol

Görünürlük konusunu ne kadar kavradığınızı sınayın.

Özet

Erişimi denetlemeyi öğrendiniz:

  • Ögeler varsayılan olarak özeldir; pub onları dışa açar
  • pub yapılar, her alan ayrı ayrı pub olmadıkça alanları özel tutar
  • pub numaralandırmalar tüm seçenekleri dışa açar
  • pub(crate) ve pub(super) daha ayrıntılı denetim sağlar
  • pub use, temiz bir API oluşturmak için ögeleri yeniden dışa aktarır

Sıkça Sorulan Sorular

“pub ve Görünürlük” dersi ücretsiz mi?

Evet — “pub ve Görünürlük” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Learn Rust Coding kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Learn Rust Coding kursu toplamda 4 dersten oluşur.

“pub ve Görünürlük” dersinde ne öğreneceğim?

Erişimi denetleyin Learn Rust Coding ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Learn Rust Coding öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Learn Rust Coding, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“pub ve Görünürlük” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Learn Rust Coding dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Learn Rust Coding dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Modüller ve mod
  2. pub ve Görünürlük
  3. use ve Yollar
  4. Crate'ler ve Crate Kökü
← Learn Rust Coding Sayfasına Dön