Swift: Generic

Swift programlama dilinde Generic yapılar sayesinde farklı değerler ile işlemler yapabilirsiniz.

Can Balkaya
TurkishKit
3 min readJul 20, 2020

--

Merhaba TurkishKit okuyucuları! ✋🏼 Bir uygulama yazarken şüphesiz türlü türlü aksiyonlar almanız gerekecek. Bazı aksiyonlar birbirlerinden sadece kullandıkları değer türlerine göre değişiklik gösterebilirler. Örneğin, bir dizi içerisinde olmasını varsaydığınız bir değerin (“a”, 1.2, 4, true, …) o dizinin kaçıncı elemanı olduğunu anlamak istiyorsunuz. Burada değerlerin türlerine göre ayrı ayrı işlemler yapmak saçma olacaktır. İşte bunu önlemek için Generic yapılar kullanmamız gerekiyor. Hazırsanız hiç vakit kaybetmeden başlayalım! 🦾

Yazı Önerisi 🤟🚀

Swift programlama dilinde karşılaşacağınız hataların çözümlerini bulabileceğiniz, pratik ipuçları ile kodlarınıza renk katacak yazıların bulunduğu yeni serimizi keşfedin.

Generic Nedir?

Her şeyden önce Generic yapıların tam olarak ne olduklarını öğrenelim. Generic yapılar, değerin veya değerlerin türünden bağımsız olarak işlem yapmamızı sağlayan yapılardır.

Bu yapılar sayesinde benzer işlemleri tek bir işlem haline getirmek mümkündür.

Şunu unutmamak gerekiyor ki Generic yapılar ile bütün işlemleri yapmak mümkün değildir, çünkü Generic yapılar sadece “genel” işlemleri yapabilirler.

Kodlama

Generic yapıları daha iyi anlamak için makalenin başında bahsettiğimiz örneği yapmaya başlayalım. İlk önce bu örneği Generic olmadan yapalım ki aradaki farkı daha iyi anlayalım. 😉

linearSearch adında yeni bir fonksiyon oluşturalım.

Sonrasında fonksiyonu bu şekilde çağıralım.

Fonksiyonda hiç bir sorun yok, ama bu fonksiyonu aşağıdaki gibi çağırsaydık hata alırdık.

Bunun sebebi tabii ki de fonksiyonun parametre türleri: “array” parametresi [String] ve “letter” parametresi ise String türünden. Bu yüzden de Int türünden değerleri yazınca hata alıyoruz. Hatırlayacaksanız burada biz istediğimiz türden (Int, Double, Bool, CGFloat, …) değerler yazmak istiyorduk. İşte bunun için Generic kullanacağız!

Bunu yapmak için ilk önce fonksiyon adının yanına <T: Comparable> yazmamız gerekiyor. Değerler arasında karşılaştırma yapmak için “Comparable” protokolünü kullanıyoruz. “T” yerine başka bir şey de yazabiliriz, ama genel olarak “T” kullanıldığı için sizin de “T” yazmanız kodunuzun okunabilirliğini arttıracaktır.

Not: “Comparable” protokolü ile alakalı daha fazla bilgi sahibi olmak için bu yazıyı okuyabilirsiniz.

Sonrasında parametrelerin değerini de “T” olarak değiştirebiliriz.

Artık istediğimiz türden değerleri bu fonksiyonda kullanabileceğiz!

Bir makalemizin daha sonuna geldik. Bu makalemizde Generic yapıların ne olduğunu ve nasıl kullanıldığını öğrendik. Keyifli kodlamalar! 🧠

Bizi daha yakından takip etmek istiyorsanız, sosyal medya hesaplarımıza aşağıdan ulaşabilirsiniz.

Twitter | Instagram | Facebook

--

--