HashMap Oluşturma
Anahtarla ekleme ve arama yapın.
HashMap Oluşturma, CoddyKit'te ücretsiz bir Learn Rust Coding dersidir. Bu, 4 dersinin 1. 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, verileri anahtar-değer çiftleri olarak saklar. Aradığınız öğeleri indeks yerine anahtarla bulursunuz.
Bunu bir telefon rehberi gibi düşünün: bir ad (anahtar), bir numaraya (değere) eşlenir. HashMaps, anlamlı bir anahtarla hızlı arama yapmanız gerektiğinde mükemmeldir.
HashMap'i İçeri Aktarma
Vec ve String'den farklı olarak HashMap, ön tanımlı kapsamda değildir. Onu kapsama almanız gerekir.
Dosyanızın en üstüne bir use satırı ekleyin. Böylece ad, modülün tamamında kullanılabilir olur.
use std::collections::HashMap;
fn main() {
let scores: HashMap<String, i32> = HashMap::new();
println!("empty map len: {}", scores.len());
}Çiftleri Eklemek
Bir anahtar ve değerini eklemek için insert kullanın. Anahtar zaten varsa eski değer değiştirilir.
Ekleme yapılabilmesi için haritanın mut olarak bildirilmesi gerekir.
use std::collections::HashMap;
fn main() {
let mut scores = HashMap::new();
scores.insert("Alice", 50);
scores.insert("Bob", 30);
println!("{} players", scores.len());
}Tür Çıkarımı
Türü nadiren kendiniz yazmanız gerekir. Rust, ilk insert çağrılarından HashMap<&str, i32> türünü çıkarır.
Burada anahtarlar dize dilimleri, değerler ise tam sayılardır; bunların tümü kullanımdan belirlenir.
use std::collections::HashMap;
fn main() {
let mut ages = HashMap::new();
ages.insert("Sam", 28);
ages.insert("Mia", 34);
println!("Sam is {}", ages["Sam"]);
}Değerleri Alma
get yöntemi bir Option döndürür. Anahtar varsa Some(&value), yoksa None alırsınız.
Bu, eksik durumu güvenli biçimde ele almanızı zorunlu kılar.
use std::collections::HashMap;
fn main() {
let mut scores = HashMap::new();
scores.insert("Alice", 50);
match scores.get("Alice") {
Some(v) => println!("score: {}", v),
None => println!("no score"),
}
}İndeksleme ve get
map[key] ile indeksleme yapabilirsiniz; ancak anahtar eksikse bu işlem paniğe yol açar.
Bir anahtarın bulunmayabileceği durumlarda get kullanmayı tercih edin. İndekslemeyi yalnızca anahtarın mevcut olduğundan eminseniz kullanın.
use std::collections::HashMap;
fn main() {
let mut m = HashMap::new();
m.insert("x", 1);
// m["y"] would panic!
let v = m.get("y").copied().unwrap_or(0);
println!("y = {}", v);
}Bir Değeri Güncelleme
Mevcut bir anahtarla insert çağırmak eski değerin üzerine yazar.
Önceki değer Option içinde sarılmış olarak döndürülür; isterseniz onu inceleyebilirsiniz.
use std::collections::HashMap;
fn main() {
let mut m = HashMap::new();
m.insert("k", 1);
let old = m.insert("k", 9);
println!("old = {:?}, now = {}", old, m["k"]);
}Anahtarları Denetleme
Bir anahtarın değerini almadan mevcut olup olmadığını sınamak için contains_key kullanın.
Bu işlem doğrudan bir bool döndürür; bu da if koşullarında kullanışlıdır.
use std::collections::HashMap;
fn main() {
let mut m = HashMap::new();
m.insert("on", true);
if m.contains_key("on") {
println!("key exists");
}
}Girdileri Kaldırma
remove yöntemi bir anahtarı siler ve değerini Option olarak döndürür.
Anahtar mevcut değilse None alırsınız; bu nedenle kaldırma işlemi her zaman güvenlidir.
use std::collections::HashMap;
fn main() {
let mut m = HashMap::new();
m.insert("a", 1);
let removed = m.remove("a");
println!("removed {:?}, len {}", removed, m.len());
}Bir Harita Üzerinde Yineleme
Bir HashMap üzerinde çalışan for döngüsü, başvuruyla (key, value) demetleri üretir.
Sıralamanın belirtilmediğine ve çalıştırmalar arasında değişebileceğine dikkat edin; çünkü karma işlemi yerleşimi karıştırır.
use std::collections::HashMap;
fn main() {
let mut m = HashMap::new();
m.insert("a", 1);
m.insert("b", 2);
for (k, v) in &m {
println!("{} -> {}", k, v);
}
}Anahtarların Sahipliği
String gibi sahip olunan değerleri eklediğinizde harita bunların sahipliğini alır.
Eklemeden sonra, önce kopyalamadıysanız bu değişkeni yeniden kullanamazsınız.
use std::collections::HashMap;
fn main() {
let mut m = HashMap::new();
let name = String::from("Alice");
m.insert(name, 50);
// name is moved here; m owns it now
println!("{}", m["Alice"]);
}Kısa Kontrol
Bir değer istiyorsunuz, ancak anahtar eksik olabilir.
Özet
Bir HashMap oluşturmayı, çiftler eklemeyi ve get veya indekslemeyle değer aramayı öğrendiniz.
Ayrıca contains_key, remove, yinelemeyi ve haritanın eklenen anahtarların sahipliğini nasıl aldığını gördünüz.
Sıkça Sorulan Sorular
“HashMap Oluşturma” dersi ücretsiz mi?
Evet — “HashMap Oluşturma” 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.
“HashMap Oluşturma” dersinde ne öğreneceğim?
Anahtarla ekleme ve arama yapın. 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 1. dersidir.
“HashMap Oluşturma” 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
- HashMap Oluşturma
- Entry API'si ve Varsayılanlar
- HashSet ile Çalışma
- Sayma ve Gruplama