Kişisel web sayfamda yazılım, teknoloji ve genel hayat hakkında paylaşımlar yapmayı hedefliyorum.

Kotlin ile Programlama Dersleri – Fonksiyonlar

Fonksiyonlar, tanımlı bir işi gerçekleştiren kod parçacıklarıdır. Fonksiyonlar ile aynı kod parçalarını tekrar tekrar yazmaktan kurtulup daha temiz ve kontrol edilebilir yapı elde ederiz. Bir fonksiyon parametre alabilir, geriye bir değer döndürebilir ya da yapmaz. 🙂

Kotlinde bir fonksiyon tanımlamak için “fun” keywordü kullanılır. Fonksiyonumuz bir değer döndürmüyorsa geri dönüş değeri Unit olur. Bunu kodumuzda belirtmemiz zorunlu değildir.

Peki aynı fonksiyonun değer döndürmesini istersek?

Kotlinde bir fonksiyonun geri dönüş değeri “:” karaketeri ile parametre body parantezlerinden (“{}”) önce belirtilir. (Değişken tanımlamaya benziyor gibi)

Çoğu zaman dışarıdan gelen veriye göre işlem yapması gereken fonksiyonlara ihtiyaç duyarız. Bu durumda devreye parametreler giriyor.

Default Arguments

Kotlinde bir fonksiyon parametresine default değer atayabiliriz. Böylelikle hem tek kod bloğunda function overloading işlemi yapabiliriz hem de parametrenin girilmediği durumu ele almış oluruz.

Named Arguments

Eğer parametrelerimiz default değere sahip değilse isimlerini belirtmek zorunda değiliz, fonksiyon prototipindeki sıraya göre değer ataması yapabiliriz. Fakat birden fazla default değerli parametremiz varsa bunların isimlerini belirtmemiz gerekir. Named Arguments belirtiminde parametrelerin sıralanmasına ihtiyaç yoktur.

Varargs

Kotlinde parametre sayısı belirsiz olan fonksiyonlar varargs tipi ile gerçekleştirilir.

Eğer birden farklı tipte veri ile çalışmak istersek vararg değişkenin tipini Any yapmamız yeterli.

Vararg tipinin JVM tarafında bir kritik noktası vardır. Eğer vararg parametremiz fonksiyonumuzun sonuncu parametresi ise JVM tarafına vararg olarak dönüşür; eğer son parametre değil de başta veya ortada ise JVM bu parametreyi array olarak çevirir. Daha performans odaklı çalışmamız gerekirse bir fonksiyonda vararg tipli parametreyi en sona yazmamız gerekir.

Fonksiyonlarla ilgili söyleyeceklerim şimdilik bu kadar. Kotlindeki özel fonksiyonlardan (standart (scope) functions, higher order functions) ileri yazılarda bahsedeceğim. Bir sonraki yazıda görüşmek üzere 👋

Share

You may also like...

2 Responses

  1. Muhammed Furkan Onaran dedi ki:

    Hocam çok açıklayıcı olmuş teşekkürler. 🙂

  1. Temmuz 2, 2020

    […] bir satır kod yazmadan bu yazıyı bitirmeyelim. Kotlin’de bir fonksiyon (bkz. Kotlinde Fonksiyonlar) yazmak için herhangi bir sınıfa ihtiyacımız yok. Bir kt dosyası bize […]

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir