Swift: typealias

Typealias sayesinde mevcut eleman tiplerinize takma ad vererek isim karmaşasından kurtulabiliriz.

Batuhan Karababa
TurkishKit
5 min readOct 2, 2020

--

Merhaba TurkishKit okuyucuları! 👋🏻 Bugünkü yazımızda typealias yapısının ne olduğunu ve nasıl kullanabileceğimizi öğreneceğiz. Bu sayede çok daha okunabilir ve düzgün kodlar yazabileceksiniz.

Typealias Nedir?

Typealias mevcut veri tiplerimiz yerine takma adlar oluşturmamızı sağlayan bir yapıdır. Bir veri türü için takma ad belirlediğimizde program boyunca o veri türünü kullanmak yerine oluşturduğumuz takma adı kullanabiliriz.

Unutmamak gerekir ki typealias yeni bir tip oluşturmaz, mevcut bir tipe referans verir.

Kullanım Alanları

Typealias yapısını veri türünün karmaşık olduğu veya tekrar tekrar aynı veri türünü yazmamız gereken her yerde daha okunabilir ve sade kod yazmak amacıyla kullanabiliriz.

Nasıl typealias Kullanılır?

Typealias yapısını oluşturmak oldukça basit. “typealias anahtar kelimesini yazdıktan sonra oluşturmak istediğimiz takma adı ve bu takma ada karşılık gelecek olan veri türünü yazıyoruz.

Hadi Kodlayalım!

Nasıl kullanıldığını daha iyi anlamak için Double türünden bir değerin türünü Dolar adıyla nasıl değiştirebileceğimizi görelim! 🚀

Yukarıda gördüğünüz gibi “Makbuz” adında bir yapı oluşturduk ve içinde toplamTutar isimli Double türünden bir değişken tanımladık. Bu Double türünün ismini Dolar olarak değiştirmek için typealias kullanmalıyız:

Artık Double türündeki elemanların türünü Dolar olarak tanımlayabiliriz.

Bu şekilde, elemanımızın türünü Double yerine Dolar yazarak kendisini daha kolay okunabilir hale getirdik. Aslında, arka tarafta hiç bir şey değişmedi. Sadece Double yerine Dolar yazabiliyoruz. Yani elemanımız arka tarafta yine Double türündedir.

Typealias Yeni Bir Tür Mü?

Typealias yeni bir tür değildir. Basitçe, mevcut veri türümüze verdiğimiz bir takma addır. Örneğin yukarıdaki bir önceki örnekteki Dolar yapımız sadece farklı bir ada sahip Double türüdür. Bu sebeple Double kullanmamız gereken her yerde Dolar yapısını kullanabiliriz.

Aynı zamanda bu durum tam tersi şekilde de olabilir. Bir typealias yapısına extension oluşturursanız, aslında o typealias yapısının altındaki tür için extension oluşturursunuz.

Bunu biraz daha iyi anlamak için hem Dolar hem de Double için kullanılabilir olan aşağıdaki euro() metoduna bakalım.

Gördüğünüz üzere “Dolar” ve “Euro” olarak iki tane typealias oluşturduk. Dolar yapısına euro() isimli bir metod ekledik ve daha sonra euro() metodunu hem Double hem de Dolar için kullanabildik.

Hazırsanız şimdi biraz daha derine inelim! 😎

Typealias ile Generic Kullanımı

Typealias yapısının bize çok yardımcı olduğu yerlerden biri de generic yapılarıdır. Generic yapılar typealias ile birlikte kullanılabilir. Örneğin, Swift’ dilindeki Result türünün ismini “ExchangeResult” olarak değiştirebiliriz. Bu okunabilirliğimizi ve sadeliği çok fazla arttıracaktır.

Hadi şimdi burada neler oluyor bakalım.

“ParaBirimi” adında Double türünde bir typealias oluşturduk.

Oluşturduğumuz ParaBirimi türünü ve Result<Currency, Error> yapısını kullanan bir generic yapı oluşturduk.

“ExchangeError” isimli Error değeri olan bir enum yapısı oluşturduk ve içinde “invalidInput” isimli bir case tanımladık.

Dolar yapısına, Euro değeri bulunduran ExchangeResult yapısını döndüren euro() isminde bir metod ekledik.

Gördüğünüz üzere oluşturduğumuz euro() metodunu hem içindeki Dolar türünden olan toplamTutar ile hem de Double ile birlikte kullanabildik.

Typealias Yapısının Diğer Kullanım Alanları

Typealias yapısı projelerde sıkça “Completion Handler” yerine de kullanılır:

Ayrıca birden çok tür bulunduran bir delegate yapısı oluştururken de typealias yapısından yararlanabiliriz:

Ya da birden çok yerde kullanacağımız bir Dictionary türünü veya diğer türleri de typealias ile basitleştirebiliriz:

CompletionHandler Olarak Typealias

Typealias yapısının en çok kullanıldığı yerlerden biri de “Completion Handler” yapısıdır. Şimdi typealias yapısının “Completion Handler” olarak nasıl kullanıldığını daha yakından inceleyelim.

Oldukça karmaşık gözüken bu üç fonksiyon aslında typealias kullanarak çok daha okunulabilir hale gelebilir.

Görüldüğü üzere bu parametreleri CompletionDailyWeather ve CompletionWeeklyWeather olarak iki ayrı typealias yapısına dönüştürdük. Bu sayede çok daha okunaklı ve bir o kadar da sade fonksiyonlar elde ettik.

Bu makalede typealias kullanarak nasıl kodlarımızı daha okunabilir ve sade yapabileceğimizi öğrendik. Umarım bu bilgiler işinize yarar ve kodlarınızı çok daha temiz ve okunabilir hale getirmenizde yardımcı olur. Sonraki makalelerde görüşmek üzere. Bol kodlu günler diliyorum! 💻

Swift Öğrenin. Uygulama Geliştirin. Sınırların Ötesine Geçin.

Hem kod yazmaya yeni başlayanların hem de profesyonellerin rahatlıkla takip edebilecekleri 40 saatlik videolu eğitim ile Swift programlama dilini derinlemesine keşfedin. Eğitim boyunca karşılaşacağınız problemleri birebir online görüşmelerde çözün.

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

Twitter | Instagram | Facebook

--

--