HashMaps
Anahtar-değer depolama
HashMaps, CoddyKit'te ücretsiz bir Learn Rust Coding dersidir. Bu, 4 dersinin 3. 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.
HashMap Nedir?
Bir HashMap<K, V>, anahtar-değer çiftlerini saklar. Değerlere konumlarıyla değil, anahtarlarıyla erişirsiniz.
Bu türü standart kütüphaneden içe aktarmanız gerekir.
use std::collections::HashMap;
fn main() {
let map: HashMap<String, i32> = HashMap::new();
println!("{} entries", map.len());
}HashMap'i İçe Aktarma
HashMap başlangıç kapsamına dahil değildir; bu nedenle dosyanızın en üstüne şu satırı ekleyiniz:
use std::collections::HashMap;
use std::collections::HashMap;
fn main() {
let scores: HashMap<&str, i32> = HashMap::new();
println!("empty: {}", scores.is_empty());
}Çift Ekleme
Bir anahtar ve değer vererek insert ile girdiler ekleyiniz. Haritanın mut olması gerekir.
use std::collections::HashMap;
fn main() {
let mut scores = HashMap::new();
scores.insert("Alice", 90);
scores.insert("Bob", 85);
println!("{:?}", scores);
}Değerlere Erişme
Bir değeri anahtarıyla okumak için get kullanınız. Bu işlem bir Option döndürür: Bulunursa Some(value), aksi durumda None.
use std::collections::HashMap;
fn main() {
let mut scores = HashMap::new();
scores.insert("Alice", 90);
match scores.get("Alice") {
Some(s) => println!("score {}", s),
None => println!("not found"),
}
}Bir Değeri Güncelleme
Mevcut bir anahtarla insert çağrısı yapmak, eski değeri yenisiyle değiştirir.
use std::collections::HashMap;
fn main() {
let mut map = HashMap::new();
map.insert("count", 1);
map.insert("count", 5); // overwrites
println!("{:?}", map.get("count"));
}Yalnızca Yoksa Ekleme
or_insert ile kullanılan entry API'si, varsayılan değeri yalnızca anahtar eksikse ekler.
use std::collections::HashMap;
fn main() {
let mut map = HashMap::new();
map.entry("x").or_insert(10);
map.entry("x").or_insert(99); // ignored, key exists
println!("{:?}", map.get("x"));
}entry ile Sayma
Klasik bir yaklaşım şudur: or_insert ile değiştirilebilir bir başvuru alıp değerini artırarak oluşumları saymak.
use std::collections::HashMap;
fn main() {
let text = "a b a c b a";
let mut counts = HashMap::new();
for word in text.split_whitespace() {
let c = counts.entry(word).or_insert(0);
*c += 1;
}
println!("{:?}", counts);
}Girdiler Üzerinde Yineleme
Her anahtar-değer çiftini ziyaret etmek için bir HashMap üzerinde döngü kurunuz. Sıra garanti edilmez.
use std::collections::HashMap;
fn main() {
let mut ages = HashMap::new();
ages.insert("Tom", 30);
ages.insert("Sue", 25);
for (name, age) in &ages {
println!("{} is {}", name, age);
}
}Girdileri Kaldırma
Bir çifti remove ile siliniz. Bu işlem, kaldırılan değeri bir Option olarak döndürür.
use std::collections::HashMap;
fn main() {
let mut map = HashMap::new();
map.insert("key", 42);
let removed = map.remove("key");
println!("removed {:?}, len {}", removed, map.len());
}Anahtar Denetleme
Bir anahtarın değerini almadan var olup olmadığını sınamak için contains_key kullanınız.
use std::collections::HashMap;
fn main() {
let mut map = HashMap::new();
map.insert("on", true);
println!("{}", map.contains_key("on"));
println!("{}", map.contains_key("off"));
}unwrap_or ile Varsayılan Değer
Okuma sırasında Option ile eşleştirme yapmak yerine unwrap_or ile bir geri dönüş değeri sağlayabilirsiniz.
use std::collections::HashMap;
fn main() {
let mut map = HashMap::new();
map.insert("a", 1);
let value = map.get("missing").unwrap_or(&0);
println!("{}", value);
}Kısa Kontrol
HashMap aramalarının nasıl çalıştığını hatırlayınız.
Özet
Rust'ta HashMaps:
HashMap<K, V>anahtar-değer çiftlerini saklar;std::collectionsiçinden içe aktarılır.insertekler veya üzerine yazar;getbir Option döndürür.entry().or_insert()yalnızca yoksa ekler.for (k, v) in &mapile yineleme yapınız.
use std::collections::HashMap;
fn main() {
let mut inventory = HashMap::new();
inventory.insert("apples", 3);
*inventory.entry("apples").or_insert(0) += 2;
println!("{:?}", inventory.get("apples"));
}Sıkça Sorulan Sorular
“HashMaps” dersi ücretsiz mi?
Evet — “HashMaps” 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.
“HashMaps” dersinde ne öğreneceğim?
Anahtar-değer depolama 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 3. dersidir.
“HashMaps” 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.