Kotlin — Kod Okunabilirliğini Artırma (Scope Fonksiyonları)

Zehra Yılmaz
Huawei Developers - Türkiye
2 min readJun 24, 2021

--

Herkese selam! Bu yazı Kotlin'in en kullanışlı özelliklerinden biri olan Scope Fonksiyonları hakkında olacak.

Scope fonksiyonları temel olarak, nesne bağlamında bir kod bloğu yürütmek ve kodlarımızı daha okunabilir hale getirmek için kullanılır. Lambda kullanan bir scope fonksiyonu çağırdığınızda, geçici bir bağlam oluşturulur. Bu geçici bağlam içerisinde, nesneye adı olmadan ulaşabilirsiniz.

Beş farklı scope fonksiyonu vardır, bunlar;

  • let
  • run
  • apply
  • also
  • with

Çıktıları ve kullanım amaçları hemen hemen aynı olsa da, bu beş scope fonksiyonun kendine ait kullanım durumları vardır. Bu beş fonksiyon, kapsamın dönüş türüne (lambda sonucu veya bağlam nesnesinin kendisi) ve kullanılan bağlam referansına (it veya this) göre farklılık gösterirler.

Bağlam Referansı (Context Reference)

Scope fonksiyonları, nesneye lambda alıcısı veya lambda argümanı olarak ulaşır. Lambda alıcısı (this) kullanan fonksiyonlar, sınıf metodlarına benzer, doğrudan nesneye ait metodları ve özellikleri kullanmaya olanak sağlar, öte yandan lambda argümanı (it) kullanan fonksiyonlar, nesneyi argüman olarak alır ve nesne this’ deki gibi doğrudan kullanılmaz.

Dönüş Değeri (Return Value)

Scope fonksiyonu, bir değişkene atayabileceğiniz bir lambda sonucu veya bağlam nesnesinin kendisini döndürür.

1. let

  • Bağlam nesnesine lambda argümanı (it) olarak ulaşılır.
  • Dönüş değeri lambda sonucudur.
  • Genellikle null olmayan nesnelerde kod bloğu hesaplama durumları için kullanılır.

2. run

  • Bağlam nesnesine bir lambda alıcısı (this) olarak erişilir.
  • Dönüş değeri lambda sonucudur.
  • Bağlam nesnesine başlangıç değerleri ayarlamanız ve lambda sonucunu kullanacağınız durumlarda kullanabilirsiniz.
  • let gibi, null olmayan nesnelerde lambda hesaplamak için de kullanılabilir.

3. apply

  • Bağlam nesnesine bir lambda alıcısı (this) olarak erişilir.
  • Nesnenin kendisini döndürür.
  • Nesne yapılandırması için kullanabilirsiniz.

4. also

  • Bağlam nesnesi bir argüman (it) olarak ulaşılır.
  • Nesnenin kendisini döndürür.
  • apply ile hemen hemen aynıdır.
  • Değerleri loglamak ve yazdırmak için kullanabilirsiniz.

also’yu, özellikleri ve işlevlerinden ziyade, nesne referansına ihtiyaç duyan eylemler için veya bu referansı bir dış kapsamdan gölgelemek istemediğinizde kullanın.

5. with

  • Bağlam nesnesi bir argüman olarak iletilir, ancak lambda alıcısı (this) olarak ulaşılır.
  • Dönüş değeri lambda sonucudur.
  • Bağlam nesnesi üzerinde farklı işlemler yaptırmak için kullanabilirsiniz.

let, run ve with, bağlam nesnesinin, farklı türde sonuçlar elde etmek için kullanıldığı scope fonksiyonlarıdır.

apply ve also ise nesneyi değiştirmek için kullanılan scope fonksiyonlarıdır.

Örneklerde gördüğünüz gibi, scope fonksiyonları kolay kullanımı ile kodun okunabilirliğini artırmamıza yardımcı olur. Daha fazla detay ve örnekler için aşağıdaki bağlantıyı inceleyebilirsiniz .

Referanslar

--

--