İçeriğe geç

Swift 3.1 ile gelen yenilikler

Merhabalar bu yazımda Apple güncelleme serisi ile tüm ürünlere yeni güncellemeleri yayınlamasının ardından Swift dilide ‘3.1’ versiyonuna geçmiş oldu. Buda Swift diline bazı yenilikler ve değişimler getirmesini sağladı.

Bu değişim ve yenilikleri aşağıda yazdığım örnekler ile inceleyelim.

İlk örneğimizde Extensionlar ile ilgili Array üzerinde extend fonksiyon yazarken her değişkeni kontrol etmek istediğimizde Comparable,Equatable protokolleri kullanıyorduk şimdi o işleme gerek kalmadan kullanabiliyoruz.

extension Array where Element == Int {
    func comp2() -> [Int] {
        
        guard self.count > 0 else {
            return []
        }
        
        return self.filter({$0 < 2})
    }
}

let qwe = [1,2,3,4,6,0,8,5,4,1].comp2() // [1,0,1]

Bir diğer yenilikte iç içe generics yapılar kullanabilmemiz sağlanmış. Aşağıdaki Struct örneği üzerinden inceleyebilirsiniz.

struct Msg<T> {
    
    struct File<T> {
        var name:T
    }
    
    var txt:T
    var controlFile:File<T>
    
}

var obj = Msg(txt: "Say hi!" ,controlFile: Msg.File(name: "a.txt"))
obj.txt // Say hi!

Sequence protokolüne iki adet fonksiyon eklendi. Bunlar :drop ve :while fonksiyonları.

let citys = ["Ankara","İzmit","İstanbul","İzmir","Ordu","Bodrum","Antalya"]

let result = citys.drop {$0.hasPrefix("A")} // İzmit,İzmir,İstanbul
result

let result2 = citys.prefix(while: {$0.characters.count > 5}) // Ankara
result2

Diğer bir özellikte Swift versiyonuna göre kod yazmanız için daha basit bir yöntemle @available üzerine eklenmiş.

@available(swift 3.1)

// code

@available(swift, introduced: 3.0, obsoleted: 3.1)

// code

Daha çok yenilik ve değişiklikler Swift 4.0 versiyonu ile sunulacaktır. Bu versiyon haziranda WWDC 17 etkinliğinde karşımıza çıkacak.

Daha fazlası için Apple Swift Doc inceleyebilirsiniz.

Tarih:SwiftSwift 3

Bu yazı yorumlara kapalı.

Copyright © 2020 Kenan Atmaca