Samsung DeX ile Telefonunuzu Masaüstü Bilgisayara Dönüştürün

Reklamlar

Swift4 type() fonksiyonu ile dinamik türün öğrenilmesi

Yakında çıkacak olan #Swift kitabımdan küçük alıntılara devam:

Swift’te bir nesnenin dinamik tür ismini öğrenmek için geçmiş versiyonlarda dynamicType kullanılmaktaydı ancak yeni versiyonda bu işlem için artık type() isimli fonksiyon kullanılmaktadır.

Bu fonksiyonun parametre etiket isminin “of” olması okuyucunun aklını karıştırıp, C türevi dillerdeki typeof() operatörününün Swift’te olduğu izlenimini uyandırmamalıdır. “obj” bir nesne örneği olmak üzere:

print(obj.dynamicType) // yerine
print(type(of: obj)) // kullanılmalıdır

Şüphesiz aynı işlem gerektiğinde self için de yapılabilir.

Swift Protocol Composition

Birden fazla protokol ile birleştirilmiş referanslar bildirilebilir. Bu durumda o referansa ancak o bildirimde belirtilen protokollerin hepsini destekleyen bir sınıf, yapı ya da enum değişkeni atanabilir.

Bildirimde protokol birleştirme işlemi protokol isimlerinin arasına “&” sembolü konularak yapılır. Örneğin:

protocol Protokol1

{

func Foo()

}

protocol Protokol2

{

func Bar()

}

class CSample1 : Protokol1

{

func Foo()

{

print(“foo”)

}

}

class CSample2 : Protokol1, Protokol2

{

func Foo()

{

print(“foo”)

}

func Bar()

{

print(“bar”)

}

}

/////////////TEST//////////////

func Test(prm: Protokol1 & Protokol2)

{

prm.Foo()

prm.Bar()

}

// Test(prm: CSample1())

// Argument type CSample1 doesnt conform to expected type ‘…’

Test(prm: CSample2()) // OK

Şüphesiz protokol listesinde sırasının bir önemi yoktur. Örneğin:

let p1: Protokol1 & Protokol2 = CSample2()

let p2: Protokol2 & Protokol1 = p1       // geçerli

Diplomalı Cahillerden İnciler

Konjonktür (Fransızca geçerli durum anlamında) yerine konjektör demekten lütfen vazgeçin. Konjektör; elektrikle ilgili teknik ve ilgisiz bir terimdir. TV’deki tartışma programlarına çıkan “sözde entelektüel aslında diplomalı cahiller” yerleştirdi bu yanlışlığı halkın kelime haznesine. Bununla kalsa yine iyi. Ya antrparantez (Fransızca aç parantez anlamında) antiparantez diyenlere ne demeli? “Paranteze karşıyım” demek istiyor herhalde… Şarj yerine maalesef iyice dilimize yerleşen şarz’dan hiç bahsetmeyeyim bile… Tanıdığım “koskoca” elektronik, elektrik mühendisleri var “şarz” diyen. “Dilim dönmüyor söyleyemiyorum” diyeni de bir derece anlarım ama yazarken bile “şarz” yazmaya başladılar. İlber hoca yerden göğe kadar haklı ne diyeyim…

tumblr_n0tzgtEWfL1tpfmuio1_500