İçeriğe geç

Swift 5 ile @dynamicCallable kullanımı

Merhabalar bu yazımda Swift 5 ile aramıza katılan @dynamicCallable özelliğinden bahsedeceğim.

Bu işlev bizlere Class, Struct yapısını yaratan değişken nesnesi üzerinden parametreler ile işlem yapmamızı sağlamaktadır.

Örnek ile olaya bir göz atalım.

@dynamicCallable
class User {
    func getUserWithId(_ id:Int) -> Int {
        return id + 999
    }

    func dynamicallyCall(withArguments id: [Int]) -> Int {
        return getUserWithId(id[0])
    }
}

let user = User()
let result = user(1) // 1000

Sınıfa eklenen dynamicallyCall fonksiyonu içerisine nesneler gönderebiliyoruz. Bunun yanı sıra key, value yapısında parametrelerde gönderebiliriz.

@dynamicCallable
struct Products {
    func dynamicallyCall(withKeywordArguments prods: KeyValuePairs<String, Int>) {
        prods.map { (key,value) in
            print(key, value)
        }
    }
}

let prod = Products()
prod(a:1,b:2,c:3)

 

Tarih:SwiftSwift 5

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Copyright © 2020 Kenan Atmaca