Swift’te, esas olarak iki türde tip söz konusudur:
I. İsimlendirilmiş tipler: Tanımlandığı zaman belirli bir isim verilen tiplerdir. İsimlendirilmiş tipler, sınıfları, yapıları, sayma yapısını (enumeration) ve protokolleri kapsar. Örneğin, A adlı bir sınıftan türetilen nesneler A tipindendir. Ayrıca Swift kütüphanesi, diziler, sözlükler ve optional değerler gibi müşterek isimlendirilmiş tipleri de içerir. Veri tipleri diğer dillerde temel ya da ilkel sıfatı ile nitelendirilir; oysa Swift’te bunlar isimlendirilmiş tiplerdir ve Swift’in standart kütüphanesinde yapılar kullanılarak gerçekleştirilmişlerdir.
II. Bileşik tipler (compound), Swift’in kendi içinde oluşturulan isimsiz tiplerdir. İki tane bileşik tip vardır: 1) Fonksiyon tipleri ve tuple tipleri. Bileşik tipler, hem isimlendirilmiş tipleri hem de diğer bileşik tipleri içerebilir. Örneğin, (Int,Int,(Double,Int)) şeklindeki tuple tipi 3 eleman içeriyor: İlk ikisi isimlendirilmiş Int tipi, üçüncüsü ise (Double,Int) şeklindeki başka bir bileşik tiptir.
TİP BİLDİRİMİ
let TupleX: (Double, Double,Double) = (1.5,2.5,89.0)
func Fonk1(x: Int) { /* ... */ }
Yukardaki örnekte görüldüğü gibi, tip bildirimi : sembolü yardımı ile gerçekleştirilir. Yukarda TupleX adlı tuple için bir bileşik tip ve Fonk1 adlı fonksiyon için x argümanının tipleri bildirilmiştir.
TİP BELİRTİCİSİ (TYPE IDENTIFIER)
Swiftin ilginç bir özelliği de gerek isimlendirilmiş tiplere gerekse de bileşik tiplere kullanıcının kendine kolaylık sağlayacak isimler verebilmesidir. Örneğin,
typealias ucint=(Int,Int,Int) ifadesi ile Int,Int,Int içeren bir tuple bileşik tipine ucint adı verilmektedir.
let v:ucint=(23,7,-9) komutu ile de v sabiti (ınt,Int,Int) türünde bir sabit olarak tanımlanabilmektedir.
typealias TamSayi=Int
var y:TamSayi=3456
ifadeleri ile de Int tipi TamSayi olarak isimlendirilmiş ve y değişkeni de Int türünde TamSayi sözcüğü yardımı ile tanımlanmıştır.
ÖRNEK PROGRAM LİSTESİ
let TupleX: (Double, Double,Double) = (1.5,2.5,89.0)
func Fonk1(x: Int) { /* ... */ }
typealias ucint=(Int,Int,Int)
let v:ucint=(23,7,-9)
typealias TamSayi=Int
var y:TamSayi=3456
print("v=\(v)")
print("y=\(y)")
PROGRAMIN ÇIKTISI
=(23, 7, -9)
y=3456
Program ended with exit code: 0
FONKSİYON TİPİ
Fonksiyon tipi, fonksiyonun tipini, metodun, parametrelerin ve gönderdiği değerin tipini içerir:
Parametre Tipi-> Dönüş Tipi(return ile)
Parametre tipleri ve dönüş tipi de birer tuple da olabileceği için fonksiyon tipleri çok parametreli fonksiyonları desteklemek durumundadır.