Menu
Coddy logo textTech

Hash Metotları

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

Ruby, hash'leri daha etkili bir şekilde incelemenize ve onlarla çalışmanıza yardımcı olan birkaç yerleşik metot sunar. Bu metotlar, hash'inizin içeriği hakkındaki bilgilere hızlı erişim sağlar.

keys yöntemi, hash içindeki tüm anahtarların bir dizisini döndürür:

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

puts person.keys  # Çıktı: name, age, city

Benzer şekilde, values metodu tüm değerlerden oluşan bir dizi döndürür:

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

puts person.values  # Çıktı: Alice, 25, Paris

Belirli bir anahtarın var olup olmadığını kontrol etmek için key? veya takma adı olan has_key? yöntemini kullanın:

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

puts person.key?("name")     # Çıktı: true
puts person.key?("country")  # Çıktı: false

length metodu, hash'in kaç tane anahtar-değer çifti içerdiğini söyler:

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

puts person.length  # Çıktı: 3

Son olarak, empty? hash'in herhangi bir anahtar-değer çiftine sahip olup olmadığını kontrol eder:

data = {}
puts data.empty?  # Çıktı: true
challenge icon

Görev

Kolay

İki satırlık girdi okuyun:

  1. key:value formatında virgülle ayrılmış anahtar-değer çiftleri olarak temsil edilen bir hash (örneğin, name:Alice,age:25,city:Paris)
  2. Varlığı kontrol edilecek bir anahtar (string)

Bir hash oluşturmak için ilk girdiyi ayrıştırın, ardından öğrendiğiniz hash metotlarını kullanarak aşağıdaki bilgileri her biri kendi satırında olacak şekilde yazdırın:

  1. Hash içindeki her bir anahtarı yazdırın (her satıra bir tane)
  2. Ayırıcı olarak --- yazdırın
  3. Hash içindeki her bir değeri yazdırın (her satıra bir tane)
  4. Ayırıcı olarak --- yazdırın
  5. Hash içindeki anahtar-değer çiftlerinin sayısını yazdırın
  6. Ayırıcı olarak --- yazdırın
  7. Hash'in boş olup olmadığını belirten true veya false yazdırın
  8. Ayırıcı olarak --- yazdırın
  9. İkinci girdideki anahtarın hash içinde var olup olmadığını belirten true veya false yazdırın

Örneğin, girdiler name:Alice,age:25,city:Paris ve age ise, çıktı şöyle olmalıdır:

name
age
city
---
Alice
25
Paris
---
3
---
false
---
true

Girdiler product:Laptop,price:999 ve stock ise, çıktı şöyle olmalıdır:

product
price
---
Laptop
999
---
2
---
false
---
false

Girdiler status:active ve status ise, çıktı şöyle olmalıdır:

status
---
active
---
1
---
false
---
true

Kopya kağıdı

Ruby, hash'leri incelemek ve onlarla çalışmak için yerleşik metotlar sunar:

keys metodu tüm anahtarların bir dizisini döndürür:

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

values metodu tüm değerlerin bir dizisini döndürür:

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

key? metodu (veya takma adı olan has_key?), belirli bir anahtarın var olup olmadığını kontrol eder:

person = {"name" => "Alice", "age" => 25}
puts person.key?("name")     # Çıktılar: true
puts person.key?("country")  # Çıktılar: false

length metodu anahtar-değer çiftlerinin sayısını döndürür:

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

empty? metodu hash'in herhangi bir çift içerip içermediğini kontrol eder:

data = {}
puts data.empty?  # Çıktılar: true

Kendin dene

# Girdiyi oku
input_string = gets.chomp
key_to_check = gets.chomp

# Hash oluşturmak için girdi dizesini ayrıştır
hash = {}
input_string.split(',').each do |pair|
  key, value = pair.split(':')
  hash[key] = value
end

# TODO: Kodunuzu aşağıya yazın
# Hash metotlarını kullanarak:
# 1. Her bir anahtarı yazdır (her satıra bir tane)
# 2. Ayırıcı olarak "---" yazdır
# 3. Her bir değeri yazdır (her satıra bir tane)
# 4. Ayırıcı olarak "---" yazdır
# 5. Anahtar-değer çiftlerinin sayısını yazdır
# 6. Ayırıcı olarak "---" yazdır
# 7. Hash boşsa true/false yazdır
# 8. Ayırıcı olarak "---" yazdır
# 9. key_to_check hash içinde mevcutsa true/false 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.

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