Menu
CoddyTech

Hash Anahtarı Olarak Semboller

Coddy'nin Ruby Journey'sinin Temel Bilgiler bölümünün bir parçası. Ders 78 / 88.

Şimdiye kadar hash anahtarları olarak dizeleri, hash rocket söz dizimini kullanarak kullandın. Ancak Ruby geliştiricileri anahtar olarak genellikle bunun yerine sembolleri kullanır; bu da daha temiz ve verimli bir yaklaşım sunar.

Önceki konulardaki sembolleri hatırlıyor musun? Bunlar, iki nokta üst üste ile başlayan hafif ve değiştirilemez tanımlayıcılardır. Sembolleri anahtar olarak kullanırken Ruby özel bir kısa yazım biçimi sunar:

person = {name: "Alice", age: 25, city: "Paris"}

puts person  # Çıktı: {:name=>"Alice", :age=>25, :city=>"Paris"}

name: ifadesinin :name => ifadesinin yerini aldığına dikkat et. Bu kısa yazım yalnızca anahtar bir sembol olduğunda çalışır. Değerlere erişmek için köşeli parantezlerle birlikte sembolü kullan:

person = {name: "Alice", age: 25}

puts person[:name]  # Çıktı: Alice
puts person[:age]   # Çıktı: 25

Girdileri eklemek ve değiştirmek aynı şekilde çalışır:

person = {name: "Alice"}

person[:city] = "Paris"
person[:name] = "Bob"

puts person  # Çıktı: {:name=>"Bob", :city=>"Paris"}

Semboller, dizelerden daha hızlı karşılaştırıldıkları ve daha az bellek kullandıkları için karma anahtarı olarak tercih edilir. Bu kalıpla Ruby kodlarında sık sık karşılaşacaksın, bu yüzden ona alışmaya değer.

challenge icon

Görev

Kolay

Üç satır girdi oku:

  1. Bir otomobil markası (dize)
  2. Bir model adı (dize)
  3. Bir yıl (tam sayı)

Aşağıdaki anahtar-değer çiftlerini içeren, sembol kısa yazım söz dizimini (ör. key: value) kullanarak car adlı bir karma oluştur:

  • :brand anahtarını otomobil markasına eşle
  • :model anahtarını model adına eşle
  • :year anahtarını yıla eşle (tam sayı olarak)

Ardından şu işlemleri gerçekleştir:

  1. :model anahtarının değerini yazdır
  2. "black" değerine sahip yeni bir :color anahtarı ekle
  3. Geçerli değerine 1 ekleyerek :year anahtarını güncelle
  4. Son karmayı yazdır

Örneğin, girdiler Toyota, Camry ve 2020 ise çıktı şöyle olmalıdır:

Camry
{:brand=>"Toyota", :model=>"Camry", :year=>2021, :color=>"black"}

Girdiler Honda, Civic ve 2018 ise çıktı şöyle olmalıdır:

Civic
{:brand=>"Honda", :model=>"Civic", :year=>2019, :color=>"black"}

Girdiler Ford, Mustang ve 2023 ise çıktı şöyle olmalıdır:

Mustang
{:brand=>"Ford", :model=>"Mustang", :year=>2024, :color=>"black"}

Kendin dene

# Girdiyi oku
brand = gets.chomp
model = gets.chomp
year = gets.chomp.to_i

# TODO: Kodunu aşağıya yaz
# 1. :brand, :model ve :year anahtarlarıyla sembol kısa yazım sözdizimini kullanarak 'car' adlı bir hash oluştur

# 2. :model anahtarının değerini yazdır

# 3. "black" değerine sahip yeni bir :color anahtarı ekle

# 4. :year anahtarının mevcut değerine 1 ekleyerek değerini güncelle

# 5. Son hash'i yazdır
quiz iconKendini test et

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

Temel Bilgiler bölümündeki tüm dersler

Kendi başına pratik yap: Online Ruby derleyicisi