Rustda Güçlü ve Verimli Veri İşleme: Iteratorlarla Tanışın!

[en] Read in English

2024-04-15

Rust dilinde iteratorler, koleksiyonlar üzerinde gezinmek ve üzerlerinde işlemler yapmak için kullanılan yapılar arasında yer alır. Iteratorlar, veri koleksiyonlarının elemanlarına erişmek ve bu elemanlar üzerinde işlemler yapabilmek için kullanılır. Rust’ın sahiplik ve ödünç verme kuralları ile entegre şekilde çalıştıkları için güvenli ve etkili bir kullanım sunarlar.

Iterator Tanımlama ve Kullanma

Iterator’ı kullanmanın temel yolu .iter(), .iter_mut(), ve .into_iter() metodlarıdır. Bu metodlar, koleksiyonun sahiplik durumuna göre değişir:

  • .iter(): Koleksiyonun immutable referansları üzerinden iterasyon yapar. Koleksiyonun orijinaline dokunmadan elemanlarına erişirsiniz.
  • .iter_mut(): Mutable referanslar ile iterasyon yapar. Bu sayede koleksiyonun elemanları üzerinde değişiklik yapabilirsiniz.
  • .into_iter(): Koleksiyonun sahipliğini alarak iterasyon yapar. Bu, koleksiyonu tüketir ve elemanları üzerinde sahiplik hakkıyla işlem yapmanıza izin verir.

Basit Bir Örnek

İlk örneğimizde bir vektör üzerinde iterasyon yaparak elemanlarını yazdıralım:

let numbers = vec![1, 2, 3, 4, 5];

for num in numbers.iter() {
    println!("{}", num);
}

Değişiklik Yapma

Mutable referanslar ile elemanlar üzerinde değişiklik yapabiliriz:

let mut numbers = vec![1, 2, 3, 4, 5];

for num in numbers.iter_mut() {
    *num += 1;  // Her elemana 1 ekle
}

println!("{:?}", numbers); // Çıktı: [2, 3, 4, 5, 6]

Sahiplik ile Iterasyon

Sahiplik alarak koleksiyon üzerinde iterasyon yapalım:

let numbers = vec![1, 2, 3, 4, 5];
let doubled: Vec<_> = numbers.into_iter().map(|num| num * 2).collect();

println!("{:?}", doubled); // Çıktı: [2, 4, 6, 8, 10]

Genel Iterator Metodları

Rust iteratorleri, birçok kullanışlı metoda sahiptir, bunlardan bazıları şunlardır:

  • .map(): Elemanları belirli bir fonksiyon ile dönüştürür.
  • .filter(): Bir koşula göre elemanları süzer.
  • .fold(): Tüm elemanları bir başlangıç değeri ile birleştirerek tek bir değere indirger.

Örnek: map ve filter Kombinasyonu

Bir sayı listesinden sadece çift sayıları alıp, her birini iki katına çıkaralım:

let numbers = vec![1, 2, 3, 4, 5];
let processed: Vec<_> = numbers.iter()
                               .filter(|&&x| x % 2 == 0)
                               .map(|&x| x * 2)
                               .collect();

println!("{:?}", processed); // Çıktı: [4, 8]

Iteratorlerle ilgili daha fazla öğrenmek ve pratik yapmak, Rust’ı etkili bir şekilde kullanmanın anahtarlarından biridir. Rust belgeleri ve topluluk kaynakları, bu konuda daha derinlemesine bilgi edinmek için mükemmel kaynaklardır.



Bu gibi daha fazla gönderi...

Rust ta Crate ler: Modülerlik ve Yeniden Kullanımın Temeli

2024-04-03 | #crates #rust

Rust, modern ve güvenli bir programlama dili olarak, yazılım geliştirme dünyasında hızla popülerlik kazanıyor. Rust’ın en önemli özelliklerinden biri, modülerlik ve yeniden kullanılabilirlik üzerine kurulu olmasıdır. Bu da “crate” adı verilen bir kavramla sağlanır. Bu makalede, Rust’ta crate’lerin ne olduğunu, nasıl kullanıldığını ve neden önemli olduğunu detaylı bir şekilde ele alacağız. Crate Nedir? Basitçe söylemek gerekirse, bir crate, bir Rust projesinin temel yapı taşıdır. Bir veya birden fazla modülü içerebilen bir paket veya kütüphane olarak düşünülebilir.

Devamı 


Enum ve Pattern Matching: Rust'ta Güçlü Veri Yapıları

2023-08-25 | #rust #rust-enums #rust-patternmatching

Rust programlama dilinde enum ve pattern matching özellikleri, tip güvenliği ve kod okunabilirliği için oldukça önemli ve güçlüdür. enum (enumerasyonlar), farklı varyantları (variant) olan bir türü temsil eder. pattern matching ise, bu varyantları kolayca ve güvenli bir şekilde ele almanıza olanak tanır. Enum Nedir? enum keyword’ü ile bir enumerasyon oluşturabilirsiniz. Her bir “varyant” farklı bir olası değeri temsil eder. enum Renk { Kirmizi, Yesil, Mavi, } Bu örnekte Renk adlı bir enum tanımladık ve içerisine Kirmizi, Yesil, ve Mavi adlı varyantları ekledik.

Devamı 


Rust'ta 'Unsafe' Sihirbazlığı: Belleği Dizginleyin ve Daha Fazlasını Keşfedin!

2023-07-12 | #rust #rust-memory-management

Merhaba arkadaşlar! Bu yazıda, Rust’ın unsafe özelliğini ele alacağız. Rust, hatasız bir yazılım geliştirme deneyimi sağlamak için pek çok kısıtlama getirir. Ancak bazen, bu kısıtlamaların ötesine geçmek ve sistem seviyesinde daha fazla kontrol sahibi olmak gerekebilir. İşte tam da bu durumlarda, Rust’ın bize sunduğu “unsafe” kelimesini kullanıyoruz. Bu konu biraz kafa karıştırıcı olabilir, bu yüzden adım adım ilerleyelim. Unsafe Rust: Nedir ve Neden Kullanılır? Rust dilinde, bellek güvenliği ve veri yarışı gibi bazı problemleri önlemek amacıyla çeşitli kurallar ve kısıtlamalar mevcuttur.

Devamı 