kzen.dev
  • Întrebări
  • Tag-uri
  • Utilizatori
Notificări
Recompense
Înregistrare
După înregistrare, veți primi notificări despre răspunsurile și comentariile la întrebările DVS.
Logare
Dacă aveţi deja un cont, autentificaţi-vă pentru a verifica notificările noi.
Aici vor fi recompensele pentru întrebările, răspunsurile și comentariile adăugate sau modificate.
Mai mult
Sursă
Editează
 obuzek
obuzek
Question

Cum a face tu găsi un min / max cu Ruby?

Vreau sa fac ceva simplu și direct, ca min(5,10)", sau " Matematica.max(4,7). Există funcții pentru acest efect în Ruby?

398 2009-08-31T20:53:39+00:00 5
Andrew Grimm
Andrew Grimm
Întrebarea editată 6 ianuarie 2012 в 7:28
Programare
ruby
enumerable
Solution / Answer
 theIV
theIV
31 august 2009 в 8:56
2009-08-31T20:56:28+00:00
Mai mult
Sursă
Editează
#9429726

Poti face

[5, 10].min

sau

[4, 7].max

Ele vin de la Enumerable modul, deci nimic care include Enumerable va avea acele metode disponibile.

v2.4 introduce propriile Matrice#min " și " Matrice#max, care sunt mult mai rapide decât Enumerable's metode, deoarece acestea sări de asteptare#fiecare`.

EDIT

@nicholasklick menționează o altă opțiune, Enumerable#minmax, dar de această dată se întoarce o matrice de[min, max]`.

[4, 5, 7, 10].minmax
=> [4, 10]
 erb
erb
Răspuns editat 14 aprilie 2019 в 11:53
693
0
Diego Dias
Diego Dias
31 august 2009 в 8:57
2009-08-31T20:57:02+00:00
Mai mult
Sursă
Editează
#9429727

Puteți utiliza

[5,10].min 

sau

[4,7].max

L's o metodă de Tablouri.

 slhck
slhck
Răspuns editat 23 aprilie 2012 в 2:08
51
0
Dave Morse
Dave Morse
10 ianuarie 2016 в 7:11
2016-01-10T19:11:24+00:00
Mai mult
Sursă
Editează
#9429730

Toate aceste rezultate genera gunoi într-un zelos încerca să se ocupe mai mult de două argumente. Am'd fi curios să văd cum se vor efectua în comparație cu bun 'ol:

def max (a,b)
  a>b ? a : b
end

care este de-a-mi răspuns oficial la întrebarea ta. :)

22
0
 HamsterMuffin
HamsterMuffin
20 septembrie 2014 в 8:35
2014-09-20T08:35:19+00:00
Mai mult
Sursă
Editează
#9429728

În plus față de cele furnizate răspunsuri, dacă doriți pentru a converti Enumerable#max într-un max metodă care poate apela un număr variabil sau argumente, ca și în alte limbaje de programare, ai putea scrie:

def max(*values)
 values.max
end

Ieșire:

max(7, 1234, 9, -78, 156)
=> 1234

Acest abuzuri proprietățile bulină operator pentru a crea un obiect matrice care conține toate argumentele oferite, sau un array gol obiect dacă nu există argumente au fost furnizate. În acest din urmă caz, metoda va returna "zero", de asteptare Enumerable#max pe un array gol obiect se întoarce "zero".

Dacă doriți să definiți această metodă pe Matematica module, acest lucru ar trebui să facă truc:

module Math
 def self.max(*values)
  values.max
 end
end

Rețineți că Enumerable.max este, cel puțin, de două ori mai lent în comparație cu operatorul ternar (?:). A se vedea Dave Morse's a răspunde pentru o mai simplă și mai rapidă metodă.

 Community
Community
Răspuns editat 23 mai 2017 в 12:34
20
0
 aaron-coding
aaron-coding
24 iulie 2015 в 7:54
2015-07-24T19:54:58+00:00
Mai mult
Sursă
Editează
#9429729

Dacă aveți nevoie pentru a găsi max/min de hash, puteți utiliza #max_by " sau " #min_by

people = {'joe' => 21, 'bill' => 35, 'sally' => 24}

people.min_by { |name, age| age } #=> ["joe", 21]
people.max_by { |name, age| age } #=> ["bill", 35]
17
0
Adăugati o întrebare
Categorii
Toate
Tehnologii
Cultură
Viață / Artă
Stiință
Profesii
Afaceri
Utilizatori
Toate
Nou
Populare
1
工藤 芳則
Înregistrat 6 zile în urmă
2
Ирина Беляева
Înregistrat 1 săptămână în urmă
3
Darya Arsenyeva
Înregistrat 1 săptămână în urmă
4
anyta nuam-nuam (LapuSiK)
Înregistrat 1 săptămână în urmă
5
Shuhratjon Imomkulov
Înregistrat 1 săptămână în urmă
DE
ES
ID
JA
KO
PT
RO
RU
TR
ZH
© kzen.dev 2023
Sursă
stackoverflow.com
în cadrul licenței cc by-sa 3.0 cu atribuire