Sobes.tech
Junior

Mis on Ruby's agregatsioonifunktsioon?

sobes.tech AI

Vastus AI-lt

Ruby kogumisefunktsioon rakendub kogumile (näiteks massiiv või sõnastik) ja vähendab selle ühe väärtuseni, kasutades määratletud ühendamise või arvutamise loogikat.

Kogumisefunktsioonide näited:

  • sum: Arvutab kogumi elementide summa.
    [1, 2, 3, 4].sum # => 10
    
  • count: Loendab elementide arvu (või neid, mis vastavad tingimusele).
    [1, 2, 3, 2].count # => 4
    [1, 2, 3, 2].count(2) # => 2
    [1, 2, 3, 2].count { |x| x > 1 } # => 3
    
  • max/min: Leiab maksimaalse/minimaalse elemendi.
    [1, 5, 2, 8].max # => 8
    [1, 5, 2, 8].min # => 1
    
  • reduce/inject: Kõige paindlikum kogumisefunktsioon, mis rakendab ploki akumulaatorile ja iga kogumi elemendile, tagastades lõpliku akumulaatori väärtuse.
    # Summa reduce abil
    [1, 2, 3, 4].reduce(0) { |sum, number| sum + number } # => 10
    
    # Stringide ühendamine
    ['a', 'b', 'c'].reduce('') { |result, char| result + char } # => "abc"
    

Põhimõte seisneb selles, et toimub iteratsioon kogumi üle ning järk-järgult ehitatakse või arvutatakse lõplik, ainulaadne tulemus. See võimaldab tõhusalt töödelda andmekogusid ning saada kokkuvõtvaid näitajaid.