Rust projelerinizin zaman içinde bakımının daha kolay olması için iyi organize edildiğinden emin olun.

Rust, karmaşık ve güvenilir uygulamalar oluşturmak için mükemmel bir seçimdir. Rust uygulamalarını geliştirmek için temel becerilerden biri, üçüncü taraf paketleri dahil etmek de dahil olmak üzere projelerinizi etkin bir şekilde yapılandırmaktır.

Etkili proje organizasyonu, Rust uygulamalarını geliştirmek için çok önemlidir. İyi yapılandırılmış Rust uygulamaları, işbirliğini ve kolay üçüncü taraf uygulama entegrasyonlarını geliştirerek uygulama geliştirme için gereken zaman ve çabayı önemli ölçüde azaltır. Rust, etkili kod organizasyonu ve yönetimi için yerleşik bir paket yöneticisi ve diğer araçları sağlar.

Rust Projelerini Kurma

Rust projeleri kurmak kolaydır Rust'ı makinenize yükledikten sonra; bir Rust projesi oluşturmak ve yapılandırmak için Cargo'yu (Rust'ın yerleşik paket yöneticisi ve derleme sistemi) kullanabilirsiniz. Gibi diğer paket yöneticilerine benzer Node.js için npm Ve Python için pip

. Cargo, bağımlılıkları yönetir, kod derler ve belgeler oluşturur, bu da onu Rust geliştirme için önemli bir araç haline getirir.

Kargo kurulumunuzu doğrulamak için bu komutu çalıştırın:

kargo --versiyon

Komut, kurulu Kargo sürümünü görüntüler.

ile yeni bir Rust projesi oluşturabilirsiniz. kargo yeni emretmek. Proje adını belirtmeniz gerekecek.

kargo yeni my_project

Komut, geçerli dizinde Rust projeniz için ihtiyacınız olan temel dosyaları içeren yeni bir dizin oluşturacaktır. kargo.toml projenizin bağımlılıklarını yönetmek için dosya.

Rust Paketi Ad Alanı

Paketler ve kasalar, Rust'ta temel bileşenlerdir. Sandıklar, Rust geliştiricilerinin bazı özel kullanımlar için kullanıp derleyebilecekleri kitaplıklar veya ikili dosyalardır ve paketler bir kasa koleksiyonudur. Paketler genellikle yeniden kullanılabilir kodu tutan bir sandık ve kitaplık kasası için bir CLI sağlayan bir ikili dosya içerir.

Kasalar şunları içermelidir: Kargo.toml paket hakkında adı, sürümü, bağımlılıkları ve derleme betikleri gibi meta verileri içeren dosya.

Rust paketleri, paketler arasındaki adlandırma çakışmalarını önlemek için bir adlandırma kuralını izler. Paket adları genel olarak benzersiz, küçük harfli olmalı ve yalnızca harf, rakam ve kısa çizgi içermelidir. Bir paket adı birden fazla kelime içeriyorsa, bunları tire ile ayırın, örn. hiper sunucu.

Bir Rust paketi ad alanındaki koda şu şekilde erişebilirsiniz: kullanmak anahtar kelime ve ardından paket ve sandık adları.

İşte bir içe aktarma örneği Rng fonksiyon bir rand sandık:

kullanmak rand:: Rng;

Paketler için birden çok ad alanı oluşturabilirsiniz. Bir klasör oluşturduğunuzda, tanımlayıcının yolunu belirtmek için nokta notasyonuyla erişebileceğiniz yeni bir ad alanı yaratırsınız.

Rust'ta paketler için birden çok ad alanı olabilir. Bir klasör oluşturduğunuzda, yeni bir ad alanı yaratırsınız. Başka bir ad alanından koda erişmek için, tanımlayıcıya giden yolu belirtmek için bir nokta notasyonu kullanırsınız.

Farklı bir ad alanından bir işleve erişmenin bir örneğini burada bulabilirsiniz:

// klasör1 ad alanındaki dosya
birahanefndosya() -> u32 {
// burada bazı işlev gövdesi
geri dönmek0;
}

// klasör2 ad alanındaki dosya
kullanmak klasör1::klasör;

birahanefndizin() {
// folder1 ad alanından klasör işlevine erişim
izin vermek folder_func = klasör();
}

Program, farklı ad alanlarında iki Rust modülü tanımlar, klasör1 Ve klasör2 sırasıyla. bu klasör1 modül bir genel işlev içerir dosya bu, 32 bitlik işaretsiz bir tamsayı değeri döndürür.

bu klasör2 modülü içe aktarır dosya işlevi klasör1 ile ad alanı kullanmak izin veren anahtar kelime dizin erişmek için işlev dosya işlevi klasör1 modül. bu dizin işlev çağırır dosya işlevine dönüştürülür ve dönüş değeri şuna atanır: klasör_func değişken.

Dışa aktarmak için bir paket veya kasadaki tanımlayıcıların adlarını büyük harfle yazmanız gerekir. Bir tanımlayıcıyı dışa aktardığınızda, onu kodu kullanan diğer paketlerde erişilebilir hale getirirsiniz.

İşte dışa aktarılabilen bir genel işlev örneği.

// diğer paketlere ve kasalara aktarılan işlev
birahanefnİşlevim() {
// burada bazı işlev gövdesi
}

Ayrıca birahane anahtar kelime. Rust'ta, birahane anahtar kelimenin kısaltması halk. Bir işlev, struct, enum, herhangi bir Rust veri türü veya modül pub anahtar kelimesiyle işaretlendiğinde, modülü dışında erişilebilir hale gelir. Öğe, pub anahtar kelimesi olmadan kendi modülüne özeldir ve yalnızca modülün içinden erişilebilir.

Kapsamı ve Gizliliği Kontrol Etmek İçin Modülleri Tanımlama

Rust programlarında kapsamı ve gizliliği kontrol etmek için modülleri kullanabilirsiniz. Modüller, kodu yönetmesi ve bakımı daha kolay olan mantıksal birimler halinde düzenlemenizi sağlar.

ile modülleri bildirebilirsiniz. mod anahtar sözcük, ardından modül adı ve kaşlı ayraçlar gelir. Yeni bir modül tanımlamak, içeriği için yeni bir ad alanı oluşturur, yani işlevler, yapılar veya modül içinde tanımlanan diğer öğelere, açıkça dışa aktarmanız dışında yalnızca modül içinde erişilebilir onlara.

Modüller, adlandırma çakışmalarını önlemeye yardımcı olarak kodun anlaşılmasını daha sezgisel hale getirir.

İşte basit bir modülün sözdizimi:

mod benim_modülüm {
// modül içeriği buraya gelir
}

Modül içinde değişkenler, işlevler, yapılar, numaralandırmalar ve diğer türleri tanımlayabilirsiniz.

mod benim_modülüm {
fnsayı_ekle(A: i32, B: i32) -> i32 {
bir + b
}
}

kullanabilirsiniz birahane işlevi dışa aktarmak ve programın diğer bölümlerindeki işleve erişmek için anahtar sözcük.

mod benim_modülüm {
birahanefnsayı_ekle(A: i32, B: i32) -> i32 {
bir + b
}
}

Şimdi, arayabilirsin sayı_ekle programınızın diğer bölümlerinden işlev.

Modüllerin gizliliğini de kontrol edebilirsiniz. birahane modül tanımlarında anahtar kelime.

birahanemod benim_modülüm {
birahanefnsayı_ekle(A: i32, B: i32) -> i32 {
bir + b
}
}

Şimdi benim_modülüm modül herkese açıktır ve modüle diğer modüllerden erişebilirsiniz.

Bir modülü veya öğeyi belirli bir modül veya modül grubu için erişilebilir hale getirmeniz gerekirse, pub (sandık) anahtar kelime. bu pub (sandık) anahtar kelime, öğeye aynı kasa içindeki modüllerden erişilmesini sağlar, ancak diğer kasalardaki modüllerden erişilemez.

mod benim_modülüm {
birahaneyapıYapım {
birahane(sandık) bir_alan: u32,
}
}

Artık belirli öğeye erişebilirsiniz (bu durumda, bir_alan alanı Yapım yapı) programınızın diğer bölümlerinde.

fnana() {
izin vermek my_struct = my_module:: MyStruct { bazı_alan: 42 };
yazdır!("{}", my_struct.some_field);
}

bu benim_yapım değişken, örneğinin bir örneğidir Yapım yapı Değişken yapıya yol ayırıcıyla (::) erişir. bu ana işlev yazdırır bir_alan ile yapının alanı yazdır! makro.

Rust'ın Sahiplik Modeli Bellek Güvenliğini Sağlıyor

Rust kodunu düzenlemek, kodunuzun bakımının ve zaman içinde desteklenmesinin kolay olmasını sağlamanın bir yoludur. Rust topluluğu kurallarına ve kurallarına uyan iyi organize edilmiş bir kodda hatalarla mücadele etmek ve güvenliği sağlamak daha kolaydır.

Varsayılan olarak Rust, yerleşik bir sahiplik modeliyle programların bellekte güvenli olmasını sağlar. Sahiplik modeli, bellekteki değişkenlerin tek bir benzersiz sahibi olmasını sağlayarak bellek güvenliğini sağlar. Sahiplik modeli, veri izlerini ve birçok bellek hatasını önler.