Selammm, Bu yazıda 21'den 30'a kadar olan soruları cevaplıyoruz. Hazırsanız dalıyoruuzz.
Soru 21: when
yapıları içinde else
durumu hangi durumlarda gerekli olmaz?
when
yapılarında, tüm olasılıkları kapsayan durumlar eksiksiz bir şekilde belirtilmişse ve başka bir ihtimal söz konusu değilse, else
durumu gerekli olmaz. Örneğin, bir enum
sınıfının tüm değerlerini when
içinde kontrol ediyorsanız ve başka bir değer olması ihtimali yoksa, else
kullanmanıza gerek kalmaz. Kotlin derleyicisi, tüm olasılıkların ele alındığını fark ederek else
kullanımını zorunlu tutmaz.
Soru 22: when
yapısı içinde bir değişkenin belirli bir sınıfa ait olup olmadığını nasıl kontrol edebiliriz?
Bir değişkenin belirli bir sınıfa ait olup olmadığını when
yapısı içinde is
anahtar kelimesiyle kontrol edebilirsiniz. is
, değişkenin belirtilen sınıfa ait olup olmadığını kontrol eder ve eğer değişken o sınıfa aitse, ilgili kod bloğunu çalıştırır. Bu yöntemle, when
yapısı içerisinde bir değişkenin türünü kolayca kontrol edebilirsiniz.
Soru 23: while
döngüleri ile for
döngülerinin farkı nedir? Ne zaman while
kullanmak daha doğrudur?
while
döngüsü, belirli bir koşul sağlandığı sürece işlemi tekrar ederken, for
döngüsü genellikle mevcut bir listenin veya dizinin elemanları üzerinde döner. Peki, while
döngüsünü ne zaman kullanmalıyız? Eğer döngünün belirli bir koşul sağlandığında sonlanmasını istiyorsak, while
kullanmak daha uygundur. Bu durum, döngünün kaç kez çalışacağının önceden belirli olmadığı senaryolar için idealdir.
Soru 24: break
, continue
ve return
ifadeleri nedir ve etiketleme (label) kullanımı ne için yapılır?
break
: Bir döngüden (örneğin,for
,while
,do-while
) tamamen çıkmanıza olanak tanır. Döngüdeki tüm işlemleri sonlandırır ve döngüden çıkış yapar.continue
: Döngünün mevcut yinelemesini atlar ve bir sonraki yinelemeye geçer. Yani, döngü içindeki kodun geri kalanını atlar ve döngü bir sonraki adımına devam eder.return
: Bir fonksiyondan çıkış yapmanızı sağlar ve (varsa) fonksiyondan bir değer döndürür. Ayrıca, bir döngü içindereturn
kullanıldığında, fonksiyonun tamamını sonlandırır ve döngüden çıkar.
Etiketleme (label) kullanımı: Etiketler, çok katmanlı döngülerde veya iç içe geçmiş fonksiyonlarda break
ve continue
ifadelerinin hangi döngü veya blok üzerinde etkili olacağını belirtmek için kullanılır. Etiketler, birden fazla döngü veya blok arasında daha kontrollü bir çıkış ve devam etmeyi sağlar.
Soru 25: Infix
fonksiyon nedir? Infix
fonksiyonların performansa bir etkisi var mıdır?
Infix
fonksiyonlar, ya bir extension fonksiyonu olmalı ya da bir sınıfa ait olmalıdır. Bu fonksiyonlar yalnızca tek bir parametre alır; vararg
kullanılamaz ve bu parametreye varsayılan bir değer atanamaz, çünkü varsayılan değer kullanımı infix
fonksiyonlarının mantığına uygun değildir. Performans açısından herhangi bir etkisi yoktur. Infix
fonksiyonlar, nokta (.
) operatörü olmadan, yalnızca bir boşluk (space) ile çağrılmalarını sağlar.
Soru 26: Local fonksiyon nedir?
Local fonksiyonlar, bir fonksiyonun içinde tanımlanan ve sadece tanımlandığı fonksiyonun kapsamı içinde erişilebilen fonksiyonlardır. Bu tür fonksiyonlar, dışarıdan erişilemez ve sadece tanımlandığı yerin içinde kullanılabilir. Local fonksiyonlar, genellikle bir fonksiyonun içindeki belirli bir işlemi veya yardımcı işlevi encapsulate etmek ve bu işlevin yalnızca bu fonksiyonun içinde kullanılmasını sağlamak için kullanılır. Böylece, fonksiyonun içindeki kodun okunabilirliği artırılır ve işlevin gizliliği korunur.
Soru 27: Operator overloading ne demektir?
Operatör overload’u, mevcut operatörlerin (örneğin, +
veya -
) davranışını özelleştirerek yeni işlevler eklemeyi ifade eder. Kotlin'de operatör overload'u, sınıfınıza özel operatör işlevleri tanımlayarak yapılır. Bu, operatörlerin belirli bir sınıf için nasıl çalışacağını tanımlamanızı sağlar. Örneğin, +
operatörünü bir sınıf için toplama işlemi yapmak üzere özelleştirebilirsiniz. Operatör overload'u, sınıflarınızın daha doğal ve anlaşılır bir şekilde kullanılmasını sağlar.
Soru 28: Extension fonksiyon nedir?
Kotlin’de mevcut bir sınıfa veya kendi oluşturduğumuz bir sınıfa yeni özellikler eklemek için kullanılan fonksiyonlardır. Bu fonksiyonlar, var olan sınıflara yeni işlevler eklemenizi sağlar ve mevcut sınıfın kodunu değiştirmeden onun özelliklerini genişletmenize olanak tanır. Extension fonksiyon, sınıfların doğal işlevselliğine katkıda bulunarak kodun daha okunabilir ve ve mevcut sınıfların genişletilebilir olmasını sağlar.
Soru 29: Default argument ve named argument ne demektir?
Default argument: Bir sınıf veya fonksiyon tanımlanırken, bir parametreye varsayılan bir değer atanmasıdır. Eğer bu parametreye çağrı sırasında bir değer sağlanmazsa, varsayılan değer kullanılır.
Named argument: Fonksiyon çağrısında hangi parametreye hangi değerin atanacağını açıkça belirlemenizi sağlar. Bu, özellikle birden fazla parametre içeren fonksiyon çağrılarında hangi değerlerin hangi parametrelere atanacağını daha okunabilir bir şekilde ifade etmenizi sağlar. Böyle yaparsak da parametrelerin verilme sırası da önemini kaybeder.
Soru 30: Higher order fonksiyon nedir?
Higher-order functions (yüksek seviyeli fonksiyonlar), bir fonksiyonun ya bir veya daha fazla fonksiyonu parametre olarak alması ya da bir fonksiyonu geri döndürmesi durumudur. Başka bir deyişle, yüksek seviyeli fonksiyonlar, fonksiyonları parametre olarak kullanabilir veya fonksiyonlar döndürebilir. Bu özellik, fonksiyonel programlamanın temel taşlarından biridir ve kodun daha esnek ve yeniden kullanılabilir olmasını sağlar.
Umarım faydalı bir yazı olmuştur. Bir sonraki yazıda görüşürüzz 🎉