Son iki yıldır favori web dilim ruby on rails olduğu için biraz taraflı bir yaklaşımla bugün de ruby ile ilgili bir şeyler yazayım diyorum çoğunlukla. Öncelikle bir dilin temellerini bu şekilde soru cevaplar ile öğrenmek tabii ki zor o sebeple eğer dilde çok yeni iseniz önce dökümantasyonlarına girmenizi tavsiye ederim. Mesela bu yazı için şu adresteki bilgileri kullandım: Enumerable. Ama bazen temel bazen ufak bilgiler yolda hızlanmanız için yardım edebilir. Ruby de bir sayı listenin en küçük ya da en büyük değerini nasıl bulabilirsiniz:
[7, 3, 5, 11, 12].min
[2, 7, 4, 1, 9].max
İlki "3", ikincisi "9" u vermesi gerekiyor. Bu metodlar Ruby deki "Enumerable" modülü ile geliyor. Ama eğer detayına inerseniz daha farklı metodlar da var. Mesela:
[2, 4, 9, 3, 14, 21, 11].minmax
Bu metod başındaki listenin en küçük ve en büyük öğesini bir liste olarak geri döndürüyor, burada sonuç [2, 21] olmalı. Bu metodlar tabii ki yazı listeleri ile de işe yarıyor, ancak alfabetik sıralama üzerinden büyüklük/küçüklük ölçtüğü için, mesela:
[ali, ilayda, mert, osman, ceren, yaren].minmax
Bu size [ali, yaren] listesini verecektir. Eğer sıralamayı listedeki yazı öğelerinin uzunluklarına göre yapmak isterseniz, metodun ismi biraz değişiyor ve ilave parametre eklemek gerekiyor:
a = %w(ali, ilayda, mert, osman, ceren, yaren)
a.max_by { |x| x.length }
Mesela bu işlem "ilayda" yı döndürecektir. Çünkü uzunluğu en uzun olan o. Bu arada buraki max_by işlemini max ile yapmanız da mümkün ama onun için şöyle bir karşılaştırmalı fonksiyon eklemeniz gerekiyor.
a.max { |a, b| a.length <=> b.length }
Tüm bu metodları sayı parametresi vererek de kullanabilirsiniz:
a.min_by(2) {|x| x.length }
[2, 4, 9, 3, 14, 21, 11].max(2)
Bu işlemlerden ilki size "a" listesinin en kısa 2 elemanını getirirken, diğeri sayı listesinin en büyük 2 elemanını getirecektir.