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 bazı veriler eklemenin zamanı geldi. .insert() yöntemini 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 ve değer. Bu örnekte ülke adlarını anahtar, başkentlerini ise değer olarak saklıyoruz.

Hatırlaman gereken önemli bir davranış şudur: karma tabloda zaten var olan bir anahtar eklersen, yeni değer eskisinin üzerine yazılır:

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

Bu işlemden sonra, "France" için arama yapmak "Paris" yerine "Lyon" sonucunu döndürür. Bu üzerine yazma davranışı, .insert() yöntemini hash map'inize hem yeni girdiler eklemek hem de mevcut girdileri güncellemek için kullanışlı kılar.

challenge icon

Görev

Kolay

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

.clone() hakkında not: Bir String değişkenini HashMap'e anahtar olarak eklerken Rust'ın sahiplik kuralları, değişkenin map'e taşınmasına ve bundan sonra artık kullanılamamasına neden olur. Değişkeni kullanmaya devam etmek (örneğin yazdırmak veya tekrar eklemek) için insert()'e geçirirken üzerinde .clone() çağır. Örneğin: map.insert(name.clone(), price).

Gereksinimler:

  • HashMap'i std::collections'den içe aktar
  • HashMap<String, f64> türleriyle mutable bir hash map oluştur
  • İlk girdiyi ilk ürün adı olarak oku
  • İkinci girdiyi oku ve ilk ürünün fiyatı için f64'e dönüştür
  • Ürün adı üzerinde .clone() kullanarak ilk ürünü ve fiyatını hash map'e ekle
  • Üçüncü girdiyi ikinci ürün adı olarak oku
  • Ürün adı üzerinde .clone() kullanarak ikinci ürünü 0.0 fiyatıyla ekle
  • İkinci ürünü .clone() kullanarak 15.99 fiyatıyla tekrar ekle (bu, önceki değerin üzerine yazacaktır)
  • Her iki ürünün bilgilerini aşağıda gösterilen tam formatta yazdır

Girdi:

  • İlk satır: İlk ürün adı (ör. Laptop)
  • İkinci satır: İlk ürünün fiyatı, ondalık sayı olarak (ör. 999.99)
  • Üçüncü satır: İkinci ürün adı (ör. 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

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();
    
    // TODO: Kodunuzu aşağıya yazın
    // Değiştirilebilir bir HashMap oluşturun, ürünleri ekleyin ve gerekli çı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

Kendi başına pratik yap: Online Rust derleyicisi