Dönüş Değerleri
Coddy'nin Ruby Journey'sinin Temeller bölümünün bir parçası — ders 50 / 88.
Şimdiye kadar, metotlarımız çıktı yazdırmak gibi eylemler gerçekleştirdi. Ancak metotlar, kendilerini çağıran koda veri geri gönderebildiklerinde gerçekten güçlü hale gelirler. Dönüş değerleri (return values) bunun içindir.
Ruby'de bir metot, son ifadesinin değerini otomatik olarak döndürür:
def add(a, b)
a + b
end
result = add(5, 3)
puts result # Çıktı: 8Metodun içinde puts olmadığını fark edin. Bunun yerine, metot a + b işlemini hesaplar ve bu değeri döndürür. Daha sonra bunu bir değişkende saklayabilir veya doğrudan kullanabiliriz.
Ayrıca return anahtar kelimesini açıkça kullanabilirsiniz:
def multiply(a, b)
return a * b
end
puts multiply(4, 5) # Çıktı: 20return anahtar kelimesi metottan anında çıkar ve belirtilen değeri geri gönderir. Bu, bir koşula bağlı olarak erken çıkmak istediğinizde yararlıdır. Her iki yaklaşım da çalışır, ancak Ruby programcıları daha temiz kod için genellikle örtük (implicit) dönüşlere güvenirler.
Dönüş değerleri, işlemleri zincirlemenize ve basit metotlardan karmaşık mantıklar oluşturmanıza olanak tanır:
def double(n)
n * 2
end
puts double(double(3)) # Çıktı: 12Görev
KolayBir parametre n alan ve bu sayının karesini (sayının kendisiyle çarpımı) döndüren square adında bir metot tanımlayın.
Girdiden iki tam sayı okuyun. Her bir sayının karesini hesaplamak için square metodunu kullanın, ardından her iki karenin toplamını yazdırın.
Örneğin, girdiler 3 ve 4 ise:
- 3'ün karesi 9'dur
- 4'ün karesi 16'dır
- Toplam 25'tir
Çıktı şu şekilde olmalıdır:
25Girdiler 5 ve 2 ise, çıktı şu şekilde olmalıdır:
29Kopya kağıdı
Metotlar, kendilerini çağıran koda değerler döndürebilir. Ruby'de bir metot, son ifadesinin değerini otomatik olarak döndürür:
def add(a, b)
a + b
end
result = add(5, 3)
puts result # Çıktı: 8Metottan çıkmak ve bir değer geri göndermek için return anahtar kelimesini açıkça da kullanabilirsiniz:
def multiply(a, b)
return a * b
end
puts multiply(4, 5) # Çıktı: 20Dönüş değerleri, metot çağrılarını zincirlemenize olanak tanır:
def double(n)
n * 2
end
puts double(double(3)) # Çıktı: 12Kendin dene
# Girişten iki tam sayı oku
num1 = gets.chomp.to_i
num2 = gets.chomp.to_i
# TODO: Aşağıda square metodunu tanımlayın
# TODO: Square metodunu kullanarak karelerin toplamını hesaplayın ve sonucu yazdırınBu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Temeller bölümündeki tüm dersler
4Operatörler Bölüm 2
Mantıksal Operatörler Bölüm 1Mantıksal Operatörler Bölüm 2Özet - Basit MantıkMantıksal Operatörler Bölüm 3Mantıksal Operatörler Bölüm 47Hesap Paylaşımı Hesaplayıcısı
Hoş Geldiniz MesajıKullanıcı Girdisi Alma13İleri Seviye Diziler
Aralıklar ile Dizi Dilimlemeİndeksler ile Dizi DilimlemeDizi OperatörleriInclude? Metodu2Değişkenler ve Veri Tipleri
Sayılar ve DeğişkenlerString Veri TipiBoolean Veri TipiSymbol Veri TipiVeri Tiplerini Kontrol Etmeİsimlendirme KurallarıÖzet - Değişken Oluşturma8Döngüler
Aralıklar ile For DöngüsüWhile DöngüsüBreakNextÖzet - FaktöriyelTimes DöngüsüUntil Döngüsüİç İçe DöngülerÖzet - Dinamik Girdi3Operatörler Bölüm 1
Aritmetik OperatörlerModulo OperatörüAritmetik KısayollarÖzet - Basit MatematikKarşılaştırma Operatörleri6Temel IO
puts ile Çıktı Almaprint ve p ile Çıktı AlmaDeğişkenlerle Çıktı Almagets ile Girdi AlmaChomp MetoduTip DönüşümüÖzet - Yaş HesaplayıcıÖzet - Doğru mu Yanlış mı9Metotlar
Metot TanımlamaMetot ParametreleriDönüş DeğerleriÖzet - Sigma MetoduÖzet - Doğrulama MetoduVarsayılan Parametre Değerleri12Koleksiyonlar Üzerinde Yineleme
Each Yineleyicisiİndeks ile EachStringler Üzerinde YinelemeMap ve Collect