Menu
Coddy logo textTech

Anahtar-Değer Çiftleri Ekleme

Coddy'nin Rust Journey'sinin Mantık & Akış 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" araması "Paris" yerine "Lyon" 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 değiştirilebilir 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, yeni fiyatla tekrar ekleyerek ikinci ürünün fiyatını 15.99 olarak güncelle. Aşağıda gösterilen tam biçimde tüm bilgileri 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şınacağı ve sonrasında artık kullanılamayacağı anlamına gelir. 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 değiştirilebilir 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 biçimde yazdır

Girdi:

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

Mantık & Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online Rust derleyicisi