Menu
Coddy logo textTech

Select ve Reject

Coddy'nin Ruby Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 21 / 56.

select yöntemi, bloğun doğruluk değeri (truthy) döndürdüğü öğeleri içeren yeni bir dizi döndürür. Ruby'de "filter" bu şekilde ifade edilir.

numbers = [1, 2, 3, 4, 5, 6]
evens = numbers.select { |n| n.even? }
puts evens.inspect   # [2, 4, 6]

reject bunun tam tersidir; bloğun false döndürdüğü her şeyi tutar:

odds = numbers.reject { |n| n.even? }
puts odds.inspect    # [1, 3, 5]

Her ikisi de yeni bir dizi döndürür; orijinali değişmez.

Blok sadece bir yüklemdir; true veya false olarak değerlendirilen her şey çalışır:

words = ["hi", "hello", "hey", "yo"]
long  = words.select { |w| w.length >= 3 }
puts long.inspect    # ["hello", "hey"]
challenge icon

Görev

Başlangıç

Virgülle ayrılmış tam sayılardan oluşan bir liste okuyun. İki satır yazdırın:

  1. 10'dan büyük olan sayılar (select kullanın), , ile birleştirilmiş
  2. 3 ile tam bölünemeyen (not divisible) sayılar (reject kullanın), , ile birleştirilmiş

3,7,12,15,20 girdisi için çıktı şöyledir:

12, 15, 20
7, 20

Kopya kağıdı

select, bloğun doğru (truthy) olduğu öğeleri içeren yeni bir dizi döndürür ("filter" gibi):

evens = [1,2,3,4].select { |n| n.even? }  # [2, 4]

reject bunun tam tersidir; bloğun yanlış (falsy) olduğu öğeleri tutar:

odds = [1,2,3,4].reject { |n| n.even? }   # [1, 3]

Her ikisi de yeni bir dizi döndürür; orijinal diziye dokunulmaz.

Kendin dene

numbers = gets.chomp.split(",").map(&:to_i)

# TODO: satır 1, sayılar > 10, ", " ile birleştirilmiş
# TODO: satır 2, 3 ile bölünemeyen sayılar, ", " ile birleştirilmiş
quiz iconKendini test et

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

Mantık ve Akış bölümündeki tüm dersler