count, all?, any?, none?
Termasuk bagian Logika dan Alur dalam perjalanan Ruby di Coddy. Pelajaran 24 dari 56.
Empat method Enumerable kecil yang menjawab pertanyaan tentang koleksi tanpa memaksamu menulis perulangan.
count mengembalikan jumlah elemen yang memenuhi blok:
[1, 2, 3, 4, 5].count { |n| n.even? } # 2
[1, 2, 3, 4, 5].count # 5 (tanpa blok, jumlah total)all? bernilai true jika setiap elemen memenuhi blok:
[2, 4, 6].all? { |n| n.even? } # true
[2, 4, 7].all? { |n| n.even? } # falseany? bernilai true jika setidaknya satu elemen memenuhi kondisi:
[1, 2, 3].any? { |n| n.even? } # true
[1, 3, 5].any? { |n| n.even? } # falsenone? bernilai true ketika tidak satu pun dari mereka memenuhi kondisi:
[1, 3, 5].none? { |n| n.even? } # truemethod ini berhenti lebih awal, any? berhenti pada kecocokan pertama, all? berhenti pada kegagalan pertama. Keduanya ringan.
Tantangan
MudahBaca list skor tes yang dipisahkan koma (bilangan bulat). Sebuah kelas adalah kelas lulus yang valid jika:
none?dari skornya bernilai negatif (tes yang tidak tercatat)all?skor paling tinggi adalah100any?skor tepat bernilai100(setidaknya ada satu skor sempurna)- setidaknya 3 skor bernilai
>= 70(gunakancount)
Cetak tepat satu baris:
Valid: <count> passingjika keempat kondisi terpenuhi (countadalah jumlah skor>= 70)Invalidjika tidak
Untuk input 72,80,100,65,90: 4 skor >= 70, tidak ada yang negatif, semuanya <= 100, satu skor bernilai 100, jadi outputnya adalah Valid: 4 passing.
Untuk 72,80,90: ada 3 skor lulus, tetapi tidak ada skor sempurna, jadi Invalid.
Coba sendiri
scores = gets.chomp.split(",").map(&:to_i)
# TODO: gabungkan all?, any?, none?, dan count untuk menentukan Valid atau Invalid
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Mendalami String
Ringkasan Method StringInterpolasi StringMenelusuri StringMemisahkan dan MenggabungkanRekap: Perangkai String4Block, Proc, dan Lambda
Apa Itu Block?do..end vs Kurung KurawalKata Kunci yieldParameter BlockProc dan LambdaRangkuman, Iterator Kustom5Andalan Enumerable
Select dan RejectMerangkai MapReduce / Injectcount, all?, any?, none?group_by dan partitionsort_by, min_by, max_byRekap: Alur Data8Pengambilan Keputusan Lanjutan
Case dengan class & regexwhen dengan Banyak NilaiOperator Ternaryif / unless SebarisUlasan, Pengklasifikasi NilaiLatihan sendiri: Compiler Ruby online