İndeks ile Each
Coddy'nin Ruby Journey'sinin Temeller bölümünün bir parçası — ders 66 / 88.
Bazen sadece üzerinde çalıştığınız öğeyi değil, aynı zamanda onun dizideki konumunu da bilmeniz gerekir. Ruby'nin each_with_index yöntemi, size tek bir yinelemede hem öğeyi hem de dizinini verir.
İşte şu şekilde çalışır:
fruits = ["apple", "banana", "cherry"]
fruits.each_with_index do |fruit, index|
puts "#{index}: #{fruit}"
endŞu çıktıyı verir:
0: apple
1: banana
2: cherryBlokun artık boru karakterleri (pipes) arasında iki değişken aldığına dikkat edin: önce öğe gelir, ardından dizin gelir. Dizin, tıpkı dizi öğelerine doğrudan erişirken olduğu gibi 0'dan başlar.
Bu, özellikle numaralandırılmış listeler görüntülemeniz veya konumları takip etmeniz gerektiğinde kullanışlıdır:
tasks = ["Buy groceries", "Clean room", "Call mom"]
tasks.each_with_index do |task, i|
puts "Task #{i + 1}: #{task}"
endİndekse 1 ekleyerek, 0 yerine 1'den başlayan, insan dostu bir numaralı liste oluştururuz. each_with_index metodu, bir sayaç değişkenini manuel olarak takip etme ihtiyacını ortadan kaldırarak kodunuzu daha temiz ve hataya daha az meyilli hale getirir.
Görev
KolayVirgülle ayrılmış kelimeler içeren tek bir satırlık girdi okuyun (örneğin, apple,banana,cherry,date).
Girdiyi bir diziye (array) bölün, ardından her bir öğeyi 1'den (0'dan değil) başlayarak numaralandırılmış bir liste olarak yazdırmak için each_with_index kullanın.
Her satır şu formatta olmalıdır: Item 1: apple
Örneğin, girdi apple,banana,cherry,date ise, çıktı şu şekilde olmalıdır:
Item 1: apple
Item 2: banana
Item 3: cherry
Item 4: dateEğer girdi red,green,blue ise, çıktı şu şekilde olmalıdır:
Item 1: red
Item 2: green
Item 3: blueEğer girdi monday,tuesday,wednesday,thursday,friday ise, çıktı şu şekilde olmalıdır:
Item 1: monday
Item 2: tuesday
Item 3: wednesday
Item 4: thursday
Item 5: fridayEğer girdi solo ise, çıktı şu şekilde olmalıdır:
Item 1: soloKopya kağıdı
each_with_index yöntemi, hem öğeye hem de dizinine (index) erişirken bir dizi üzerinde yineleme yapmanıza olanak tanır:
fruits = ["apple", "banana", "cherry"]
fruits.each_with_index do |fruit, index|
puts "#{index}: #{fruit}"
endÇıktı:
0: apple
1: banana
2: cherryBlok iki değişken alır: önce öğe, sonra dizin. Dizin 0'dan başlar.
1'den başlayan kullanıcı dostu numaralandırılmış listeler oluşturmak için dizine 1 ekleyin:
tasks = ["Buy groceries", "Clean room", "Call mom"]
tasks.each_with_index do |task, i|
puts "Task #{i + 1}: #{task}"
endKendin dene
# Virgülle ayrılmış girdiyi oku
input = gets.chomp
# Girdiyi bir diziye böl
items = input.split(",")
# TODO: Her bir öğeyi numaralandırılmış bir liste olarak yazdırmak için each_with_index kullanın
# Unutmayın: dizin 0'dan başlar, ancak 1'den başlayarak görüntülemeniz gerekir
# Format: "Item 1: apple"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
4Operatörler Bölüm 2
Mantıksal Operatörler Bölüm 1Mantıksal Operatörler Bölüm 2Özet - Basit MantıkMantıksal Operatörler Bölüm 3Mantıksal Operatörler Bölüm 47Hesap Paylaşımı Hesaplayıcısı
Hoş Geldiniz MesajıKullanıcı Girdisi Alma13İleri Seviye Diziler
Aralıklar ile Dizi Dilimlemeİndeksler ile Dizi DilimlemeDizi OperatörleriInclude? Metodu2Değişkenler ve Veri Tipleri
Sayılar ve DeğişkenlerString Veri TipiBoolean Veri TipiSymbol Veri TipiVeri Tiplerini Kontrol Etmeİsimlendirme KurallarıÖzet - Değişken Oluşturma8Döngüler
Aralıklar ile For DöngüsüWhile DöngüsüBreakNextÖzet - FaktöriyelTimes DöngüsüUntil Döngüsüİç İçe DöngülerÖzet - Dinamik Girdi3Operatörler Bölüm 1
Aritmetik OperatörlerModulo OperatörüAritmetik KısayollarÖzet - Basit MatematikKarşılaştırma Operatörleri6Temel IO
puts ile Çıktı Almaprint ve p ile Çıktı AlmaDeğişkenlerle Çıktı Almagets ile Girdi AlmaChomp MetoduTip DönüşümüÖzet - Yaş HesaplayıcıÖzet - Doğru mu Yanlış mı9Metotlar
Metot TanımlamaMetot ParametreleriDönüş DeğerleriÖzet - Sigma MetoduÖzet - Doğrulama MetoduVarsayılan Parametre Değerleri12Koleksiyonlar Üzerinde Yineleme
Each Yineleyicisiİndeks ile EachStringler Üzerinde YinelemeMap ve Collect