Sobes.tech
Junior

Kuo išsiskiria agreguojanti funkcija Ruby?

sobes.tech AI

Atsakymas iš AI

Ruby agregavimo funkcija taikoma kolekcijai (pavyzdžiui, masyvui ar žodynui) ir ją sumažina iki vienos vertės, naudojant nustatytą jungimo ar skaičiavimo logiką.

Agregavimo metodų pavyzdžiai:

  • sum: Skaičiuoja kolekcijos elementų sumą.
    [1, 2, 3, 4].sum # => 10
    
  • count: Skaičiuoja elementų skaičių (arba elementus, kurie atitinka sąlygą).
    [1, 2, 3, 2].count # => 4
    [1, 2, 3, 2].count(2) # => 2
    [1, 2, 3, 2].count { |x| x > 1 } # => 3
    
  • max/min: Randa didžiausią/mažiausią elementą.
    [1, 5, 2, 8].max # => 8
    [1, 5, 2, 8].min # => 1
    
  • reduce/inject: Labiausiai lanksti agregavimo funkcija, kuri taiko bloką prie akumuliatoriaus ir kiekvieno kolekcijos elemento, grąžindama galutinę akumuliatoriaus reikšmę.
    # Suma naudojant reduce
    [1, 2, 3, 4].reduce(0) { |sum, number| sum + number } # => 10
    
    # Eilučių sujungimas
    ['a', 'b', 'c'].reduce('') { |result, char| result + char } # => "abc"
    

Esmė ta, kad vyksta iteracija per kolekciją ir laipsniškai kuriamas arba skaičiuojamas galutinis, vienintelis rezultatas. Tai leidžia efektyviai apdoroti duomenų rinkinius ir gauti apibendrinančius rodiklius.