Menu
Coddy logo textTech

Anahtar-Değer Çiftleri Ekleme

Coddy'nin Rust Journey'sinin Logic & Flow bölümünün bir parçası — ders 29 / 66.

Artık boş bir hash map'iniz olduğuna göre, ona biraz veri eklemenin zamanı geldi. .insert() metodunu kullanarak bir hash map'e anahtar-değer çiftleri ekleyebilirsiniz:

let mut capitals = HashMap::new();
capitals.insert("France", "Paris");
capitals.insert("Japan", "Tokyo");

.insert() yöntemi iki parametre alır: anahtar (key) ve değer (value). Bu örnekte, ülke isimlerini anahtar, başkentlerini ise değer olarak saklıyoruz.

Hatırlanması gereken önemli bir davranış vardır: Eğer hash map'te zaten var olan bir anahtarı eklerseniz, yeni değer eskisinin üzerine yazılacaktır:

capitals.insert("France", "Lyon");  // Bu, "Paris"in üzerine yazar

Bu işlemden sonra, "France" araması yapmak "Paris" yerine "Lyon" döndürecektir. Bu üzerine yazma davranışı, .insert() metodunu hash map'inize hem yeni girişler eklemek hem de mevcut olanları güncellemek için kullanışlı hale getirir.

challenge icon

Görev

Kolay

Üç girdi alacaksınız: bir ürün adı, fiyatı (ondalık sayı olarak) ve başka bir ürün adı. Ürün adlarını anahtar (String türünde) ve fiyatlarını değer (f64 türünde) olarak saklamak için değiştirilebilir (mutable) bir hash map oluşturun. İlk ürünü fiyatıyla birlikte hash map'e ekleyin. Ardından ikinci ürünü 0.0 fiyatıyla ekleyin. Son olarak, ikinci ürünün fiyatını yeni fiyatla tekrar ekleyerek 15.99 olarak güncelleyin. Tüm bilgileri aşağıda gösterilen tam formatta yazdırın.

.clone() üzerine not: Bir String değişkenini HashMap'e anahtar olarak eklerken, Rust'ın sahiplik (ownership) kuralları gereği değişken map'e taşınır (moved) ve sonrasında artık kullanılamaz. Değişkeni kullanmaya devam etmek için (örneğin, yazdırmak veya tekrar eklemek için), insert() metoduna geçirirken üzerinde .clone() metodunu çağırın. Örneğin: map.insert(name.clone(), price).

Gereksinimler:

  • std::collections içerisinden HashMap yapısını içe aktarın
  • HashMap<String, f64> türlerinde değiştirilebilir bir hash map oluşturun
  • İlk girdiyi ilk ürün adı olarak okuyun
  • İkinci girdiyi okuyun ve ilk ürünün fiyatı için f64 türüne dönüştürün
  • İlk ürünü ve fiyatını, ürün adı üzerinde .clone() kullanarak hash map'e ekleyin
  • Üçüncü girdiyi ikinci ürün adı olarak okuyun
  • İkinci ürünü 0.0 fiyatıyla, ürün adı üzerinde .clone() kullanarak ekleyin
  • İkinci ürünü 15.99 fiyatıyla, .clone() kullanarak tekrar ekleyin (bu işlem önceki değerin üzerine yazacaktır)
  • Her iki ürün için bilgileri aşağıda gösterilen tam formatta yazdırın

Girdi:

  • İlk satır: İlk ürün adı (örneğin, Laptop)
  • İkinci satır: Ondalık sayı olarak ilk ürünün fiyatı (örneğin, 999.99)
  • Üçüncü satır: İkinci ürün adı (örneğin, Mouse)

Çıktı:

  • İlk satır: Inserted [first_product] at $[price]
  • İkinci satır: Inserted [second_product] at $0.00
  • Üçüncü satır: Updated [second_product] to $15.99

Kopya kağıdı

Bir hash map'e anahtar-değer çiftleri eklemek için .insert() metodunu kullanın:

let mut capitals = HashMap::new();
capitals.insert("France", "Paris");
capitals.insert("Japan", "Tokyo");

.insert() metodu iki parametre alır: anahtar ve değer.

Zaten var olan bir anahtarı eklerseniz, yeni değer eskisinin üzerine yazılacaktır:

capitals.insert("France", "Lyon");  // Bu, "Paris" değerinin üzerine yazar

Bu üzerine yazma davranışı, .insert() metodunu hem yeni girişler eklemek hem de mevcut olanları güncellemek için kullanışlı kılar.

Kendin dene

use std::collections::HashMap;
use std::io;

fn main() {
    // Girdileri oku
    let mut product1 = String::new();
    io::stdin().read_line(&mut product1).expect("Failed to read line");
    let product1 = product1.trim().to_string();
    
    let mut price1_input = String::new();
    io::stdin().read_line(&mut price1_input).expect("Failed to read line");
    let price1: f64 = price1_input.trim().parse().expect("Failed to parse price");
    
    let mut product2 = String::new();
    io::stdin().read_line(&mut product2).expect("Failed to read line");
    let product2 = product2.trim().to_string();
    
    // YAPILACAK: Kodunuzu aşağıya yazın
    // Değiştirilebilir bir HashMap oluşturun, ürünleri ekleyin ve istenen çıktıyı yazdırın
    
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Logic & Flow bölümündeki tüm dersler