Enumeration - 1

Enumeration

Enumaration aynı tipteki benzer yapıların gruplamasında kullanılan yapıdır.

enum Yonler{
case dogu
case bati
case kuzey
case guney
}

enum Gezegenler{
case merkur, venus, dunya, mars, jupiter, saturn, uranus, neptun
}

var evinCephesi = Yonler.bati //uzun gösterim
evincephesi = .dogu  //kısa gösterim

Paylaş (Share) Butonu


Paylaş (Share) Butonu

Uygulama içerisinde paylaşmak istediğimiz verileri başka uygulamalar aracılığıyla paylaşım yapmak için kodlarımız aşağıdadır;

Closures - Kapatmalar - 4


Bir fonksiyon ya da metot () -> T türünden bir fonksiyon parametresine sahipse onu hiç küme parantezleri olmadan çağırabiliriz. Bunun için parametre değişkeninin @autoclosure özniteliği ile niteliklendirilmesi gerekir.
Örneğin:
func foo(@autoclosure f: () -> Int){
print(f())
}
foo(10 + 20) // geçerli

Closures - Kapatmalar - 3


Bir closure dıştaki bloğun değişkenlerini kullanabilir. Closure’lar bu bakımdan iç içe fonksiyonlara benzetilebilir.
Örneğin:
var x = 10
func foo(){
let i = 20
let f: () -> Int = {() -> Int in return i * x } // let f = { i * x }
print(f())
}
foo() // 200

Closures - Kapatmalar - 2


Closure, bir fonksiyonun ya da metodun bir ifade içerisinde bildirilip kullanılması anlamına gelir.
Closure’lar fonksiyon türlerindendir. Bir closure bildirimi sanki fonksiyonu bildirip onun adresini kullanmak gibidir.

Örneğin:
var f: (Int) -> Int
f = {(a: Int) -> Int in return a * a}
işlemi  bazı ayrıntılar dışında aşağıdaki ile eşdeğerdir:
var f: (Int) -> Int
func foo(a: Int) -> Int{
return a * a
}
f = foo

Closures - Kapatmalar - 1


Closures - Kapatmalar

// C - Objective-c Blocks, Diğer dillerdeki lampda
//Fonksiyonlara benzer
Global ve iç içe kullanılmış fonksiyonlar aslında kapatmaların özel halleridir. Global fonksiyonlar adı olan fakat değer almayan kapatmalardır. İç içe (nested) fonksiyonlar ise ismi olan ve değer kullanan kapatmalardır.

Operatör Fonksiyonları


Operatör Fonksiyonları

Operatör fonksiyonları (Operator Overloading) diye bilinen bu mekanizmalar, mevcut operatörlerin davranışlarının değiştirilebilmesini sağlar. Bu sayede temel türlere ilişkin olmayan yani programcı tarafından sınıf veya yapılar bildirilerek üretilen özgü türlere ilişkin değişken veya sabitler toplama, çıkartma gibi işlemlere sokulabilir.
Swift’te operatör fonksiyonlarının yazılması ile ilgili kurallar:
  • Operatöre ait sembolün, fonksiyonun ismi olması gerekir.
  • Operatör fonksiyonları global olmalıdır. Yani bir sınıfın veya yapının üyesi olamazlar.
  • Fonksiyonun parametrik yapısı, söz konusu operatörün operand sayısı ile uyumlu olmalıdır.