Menu
Coddy logo textTech

Hash Anahtarı Olarak Semboller

Coddy'nin Ruby Journey'sinin Temeller bölümünün bir parçası — ders 78 / 88.

Şimdiye kadar, hash rocket sözdizimi ile string'leri hash anahtarları olarak kullanıyordunuz. Ancak, Ruby geliştiricileri genellikle bunun yerine sembolleri anahtar olarak kullanırlar; bu da daha temiz ve daha verimli bir yaklaşım sunar.

Daha önceki sembolleri hatırlıyor musunuz? Bunlar, iki nokta üst üste ile başlayan hafif, değiştirilemez tanımlayıcılardır. Sembolleri anahtar olarak kullanırken, Ruby özel bir kısa yazım sözdizimi sağlar:

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

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

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

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

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

Kayıt ekleme ve değiştirme işlemleri aynı şekilde çalışır:

person = {name: "Alice"}

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

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

Semboller, stringlerden daha hızlı karşılaştırıldıkları ve daha az bellek kullandıkları için hash anahtarları olarak tercih edilirler. Bu deseni Ruby kodları genelinde göreceksiniz, bu yüzden buna alışmanızda fayda var.

challenge icon

Görev

Kolay

Üç satırlık girdi okuyun:

  1. Bir araba markası (string)
  2. Bir model adı (string)
  3. Bir yıl (integer)

Aşağıdaki anahtar-değer çiftlerini içeren, sembol kısa yazım sözdizimini (örneğin, key: value) kullanarak car adında bir hash oluşturun:

  • araba markasına eşlenmiş :brand
  • model adına eşlenmiş :model
  • yıla (integer olarak) eşlenmiş :year

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

  1. :model anahtarının değerini yazdırın
  2. "black" değerine sahip yeni bir :color anahtarı ekleyin
  3. :year anahtarını, mevcut değerine 1 ekleyerek güncelleyin
  4. Son hash'i yazdırın

Ö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"}

Kopya kağıdı

Ruby, sembol anahtarlarıyla hash'ler oluşturmak için kısa bir sözdizimi sağlar:

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

Bu, sembollerle hash rocket sözdizimini kullanmaya eşdeğerdir:

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

Sembol anahtarlı bir hash'ten değerlere erişmek için sembolle birlikte köşeli parantez kullanın:

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

Giriş ekleme ve değiştirme, dize (string) anahtarlarıyla aynı şekilde çalışır:

person[:city] = "Paris"  # Yeni anahtar-değer çifti ekle
person[:name] = "Bob"    # Mevcut değeri değiştir

Semboller, dizelerden daha hızlı karşılaştırıldıkları ve daha az bellek kullandıkları için hash anahtarları olarak tercih edilirler.

Kendin dene

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

# YAPILACAK: Kodunuzu aşağıya yazın
# 1. :brand, :model ve :year anahtarlarını kullanarak sembol kısa yazım sözdizimiyle 'car' adında bir hash oluşturun

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

# 3. "black" değeriyle yeni bir :color anahtarı ekleyin

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

# 5. Nihai hash'i 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.

Temeller bölümündeki tüm dersler