@auto_closure() fonksiyonunu isimlendirilmiş parametre olarak kullanarak, fonksiyona her seferinde farklı bir ifadeyi parametre olarak geçirebiliriz. Aşağıdaki örnek kodda, y ve x değişkenleri için iki ayrı koşul ile TestEt fonksiyonu çağrılmıştır:
func TestEt(_ kosul: @autoclosure () -> Bool, bildiri: String) {
if !kosul() {
print(bildiri)
}
}
let y = 9
TestEt(y>=0, bildiri: "SAYI NEGATİFTİR İŞLEM YAPILAMAZ....")
let x = -5
TestEt(x>=0, bildiri: "x SAYISI NEGATİFTİR İŞLEM YAPILAMAZ....")
PROGRAMIN ÇIKTISI
x SAYISI NEGATİFTİR İŞLEM YAPILAMAZ....
İÇ İÇE FONKSİYON TANIMLAMA (NESTED FUNCTIONS)
İç içe döngüler oluşturulabildiği gibi, Swift’te, iç içe fonksiyonlar da tanımlanabilir. Aşağıdaki örnekte, gönderilen iki tam sayının çarpımını hesaplayıp geri gönderen iki ayrı fonksiyon, carp1 ve carp2 adları ile ve ayrı stillerde yazılmışlardır.carp1 tek kademeli, carp2 ise içiçe yapılandırılmış fonksiyonlardır:
func carp1(_ a: Int, b: Int) -> Int {
return a * b
}
func carp2(_ a: Int) -> (Int) -> Int {
func carp2ic(b: Int) -> Int {
return a * b
}
return carp2ic
}
print("8*7=\(carp2(8)(7))")
print("18*5=\(carp1(18,b: 5))")
PROGRAMIN ÇIKTISI
8*7=56
18*5=90
DİZİ (ARRAY) TİPİ
Dizi tipini tanımlamak için kullanılabilecek 2 farklı bildirim şekli mevcuttur:
I. [] sembolleri kullanmak
var x: [Int] = [12,34,46,8,9,11]
print("x...dizisi...\(x)")
x...dizisi...[12, 34, 46, 8, 9, 11]
Program ended with exit code: 0
II.Diğer dizi tanımlama yolu ise Array<Tip> kalıbını kullanmaktır:
var x: Array<Int> = [12,34,46,8,9,11]
print("x...dizisi...\(x)")
x...dizisi...[12, 34, 46, 8, 9, 11]
Program ended with exit code: 0