min(5,10)
veya Math.max(4,7)
gibi basit ve basit bir şey yapmak istiyorum. Ruby'de bu etkinin işlevleri var mı?Ruby ile min/max'ı nasıl buluyorsunuz?
cevap
bunu yapabilirsiniz
[5, 10].min
veya
[4, 7].max
Onlar Enumerable module geldiği için Enumerable
içerir şey bu yöntemleri kullanılabilir olacaktır.
başka bir seçenek, Enumerable#minmax
fakat [min, max]
bir dizi dönen bu kez bahseder @nicholasklick DÜZENLEME
.
[4, 7].minmax
=> [4, 7]
Başlangıçtaki dizide sadece 2 değerlerle çok ilginç görünmüyor
yüzden
[4, 5, 7, 10].minmax
=> [4, 10]
Sen O
[5,10].min
veya
[4,7].max
var kullanabilirsiniz Diziler için bir yöntem. Bazı diğer programlama dillerinde olduğu gibi değişken numara veya argümanlar, çağırabilir maksimum yöntem haline Enumerable#max dönüştürmek istiyorsanız
sağlanan cevaplara ek olarakTeknik olarak, Diziler değil, Enumerables için bir yöntemdir. – meagar
, yazabilirsiniz:
def max(*values)
values.max
end
Çıktı:
max(7, 1234, 9, -78, 156)
=> 1234
Bu kötüye uyarısı operatörün özellikleri herhangi bir argüman sağlanması durumunda sağlanan tüm bağımsız değişkenler veya boş bir dizi nesne içeren bir dizi nesne oluşturmak için. İkinci durumda, nil
döndürme yöntemi nil
döndürür, boş bir dizi nesnesinde Enumerable#max çağırıyor.
Matematik modülünde bu yöntemi tanımlamak istiyorsanız, bu hile yapmak gerekir: Enumerable.max, en azından, two times slower compared to the ternary operator (?:
) olduğunu
module Math
def self.max(*values)
values.max
end
end
Not. Daha basit ve daha hızlı bir yöntem için Dave Morse's answer'a bakın. Eğer bir karma maksimum/dk bulmanız gerekiyorsa
, sen #max_by
veya
people = {'joe' => 21, 'bill' => 35, 'sally' => 24}
people.min_by { |name, age| age } #=> ["joe", 21]
people.max_by { |name, age| age } #=> ["bill", 35]
#min_by
Tüm bu sonuçlar ikiden fazla bağımsız değişken işlemek için gayretkeşliğiyle çöp üretmek kullanabilirsiniz. Ben onlar iyi 'ol kıyasla nasıl bir performans görmek merak duyarım:
def max (a,b)
a>b ? a : b
end
.:)
Ruby 2.4'ün [a, b] .max'yi en iyi duruma getirdiği bazı yanıltıcı noktalar var, ancak yukarıdaki uygulamadan daha hızlı olup olmadığı henüz belli değil. http://blog.bigbinary.com/2016/11/17/ruby-2-4-implements-array-min-and-max.html –
- 1. Arayan işlevini nasıl buluyorsunuz?
- 2. ASP.NET - Süreç kimliğini nasıl buluyorsunuz?
- 3. Ayın son gününü nasıl buluyorsunuz?
- 4. Kilidin sahibini nasıl buluyorsunuz (Monitör)?
- 5. nasıl vim hızlı çekti metin ile metnin buluyorsunuz?
- 6. Modül içindeki tüm modülleri ve sınıfları tekrarlı olarak nasıl buluyorsunuz?
- 7. iOS: Bir dosyanın oluşturulma tarihini nasıl buluyorsunuz?
- 8. Geçen hafta aynı hafta SQL'de nasıl buluyorsunuz?
- 9. Ruby ile
- 10. Ruby ile Homebrew nasıl güncellenir?
- 11. Ruby Koans Ruby 2.0.0 ile uyumlu değil?
- 12. Docker.qcow2'nin Docker for Mac'deki boyut sınırlamasını nasıl buluyorsunuz?
- 13. Ruby'yi kullanarak ücretsiz bir TCP sunucusu bağlantı noktasını nasıl buluyorsunuz?
- 14. Ruby ile randevuları çıkarma
- 15. Ruby ile S/MIME
- 16. Doxygen ile Ruby kodunu nasıl belgeleyebilirsiniz?
- 17. Word belgeleri ruby ile nasıl ayrıştırılır?
- 18. Ruby ile bir Unicode dizesinden nasıl kurtulurum?
- 19. Unicode sözcükleri ruby 1.9 ile nasıl eşleştirilir?
- 20. Firebase, Ruby on Rails ile nasıl kullanılır?
- 21. AppProperties'i ruby api-client ile nasıl kullanabilirim
- 22. Oauth'u Ruby ile kullanarak Google'a nasıl bağlanabilirim?
- 23. Ruby ve eventmachine ile nasıl giriş yapılır?
- 24. wcf hizmetini ruby ile nasıl tüketirsiniz?
- 25. Bir git işlemini bir şubeye kimin birleştirdiğini nasıl buluyorsunuz?
- 26. Bir sıradaki çoklu 'motiflerin' ilk endeksini nasıl buluyorsunuz?
- 27. unicode karakterine ruby ile çevirme
- 28. Ruby HTTP params ile alın
- 29. nasıl Ruby
- 30. Yaklaşımını ruby mechanize ile algıla.
Çok güzel! – Ziggy
Ya da sadece http://www.ruby-doc.org/core-2.0/Enumerable.html#method-i-minmax – nicholasklick
Yaparsınız @nicholasklick, sadece cevabımı güncelledim. Var olduğunu bile bilmiyordum! – theIV