Sobes.tech
Intern

Ruby-də hash (HASH) nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Ruby-də Hash (Hash) unikal açarların müəyyən dəyərlərə bağlandığı sıralanmış "açar-dəyər" cütlüklərindən ibarət kolleksiyadır. Açarlar adətən simvollar (Symbol) və ya sətirlər (String) olsa da, eql?hash metodlarını həyata keçirən hər hansı obyekt ola bilər.

Hash-in xüsusiyyətləri:

  • Sıralama: Ruby 1.9-dan etibarən, hashlər elementlərin əlavə olunma sırasını saxlayır.
  • Açar ilə giriş: Dəyərlərə sürətli giriş, müvafiq açar vasitəsilə həyata keçirilir.
  • Dinamik ölçü: Hashlər elementlər əlavə və ya silindikcə genişlənə və ya kiçilə bilər.
  • Tək və unikal açarlar: Hər bir açar hash daxilində unikal olur.

Hash yaratma nümunələri:

# Litrala istifadə
şəxs = { "ad" => "Alice", "yaş" => 30 }

# Açar kimi simvollardan istifadə (ən çox yayılmış və səmərəli yol)
ayarlar = { :mövzu => "qaranlıq", :dil => "ru" }

# Ruby 1.9 və yuxarı üçün simvol ilə yazım
konfiq = { host: "localhost", port: 8080 }

# Hash.new konstruktoru ilə
boş_hash = Hash.new

Əsas əməliyyatlar:

Əməliyyat Nümunə Təsviri
Qiymətə giriş şəxs["ad"] "ad" açarına uyğun dəyəri qaytarır
Əlavə və ya dəyişiklik şəxs["şəhər"] = "New York" Cütlük əlavə edir və ya dəyəri dəyişir
Silmə şəxs.delete("yaş") "yaş" açarına malik cütlüyü silir
Ölçü şəxs.size və ya şəxs.length Hash-dəki cütlüklərin sayını qaytarır
Açar yoxlaması şəxs.key?("ad") Hash-də açarın olub-olmadığını yoxlayır
Dəyər yoxlaması şəxs.value?(30) Hash-də dəyərin olub-olmadığını yoxlayır
Dövr `şəxs.each { açar, dəyər
Açarlar şəxs.keys Bütün açarların massivini qaytarır
Dəyərlər şəxs.values Bütün dəyərlərin massivini qaytarır

İstifadə nümunəsi:

istifadəçi_məlumatları = {
  ad: "Boris",
  yaş: 45,
  şəhər: "Moskva"
}

# Məlumatlara giriş
puts istifadəçi_məlumatları[:ad]   # => Boris

# Yeni sahə əlavə etmək
istifadəçi_məlumatları[:iş] = "Proqramçı"

# Dəyəri dəyişmək
istifadəçi_məlumatları[:yaş] = 46

# Sahəni silmək
istifadəçi_məlumatları.delete(:şəhər)

# Hash üzərində dövr
istifadəçi_məlumatları.each do |açar, dəyər|
  puts "#{açar}: #{dəyər}"
end