2017-03-28 80 views

cevap

16
protocol Elem {} 
extension Int: Elem {} 
extension String: Elem {} 
extension Bool: Elem {} 
let arr = [Elem]() 
+0

Teşekkürler. İlk siz olduğunuzdan, cevabınızı kabul etmeliyim – Taseen

+0

Kod snippet'inin testine başvurdum, bunu yaptım ve olması gerektiği gibi çalışıyor, lütfen benim düzenlememi kabul edin :) –

8

Bir kukla protokolünü

protocol SpecialType {} 

ilan ederek bunu ve o protokol

extension String : SpecialType{} 
extension Int : SpecialType{} 
extension Bool : SpecialType{} 

Bir Çift eklemeye çalışırsanız Şimdi derleyici şikayet talep türlerini uygun sağlayabilirsiniz

let specialDict : [String:SpecialType] = ["1" : "Hello", "2": true, "3": 2.0] 
// value of type 'Double' does not conform to expected dictionary value type 'SpecialType' 
+0

'[String: Any]' veya SpecialType ile [[String: Any]] ' –

+0

Bu gerekli değildir. Sadece 'Özel' ile 'Özel' yerine. 'Array' ve 'Dictionary' koleksiyonları bunu doğru olarak değerlendirecek. – vadian

+0

no Demek istediğim, eğer veriyi dizi ya da sözlükten kontrol etmek istersem .. diziyle ya da sözlükle aynı şeyi kullanabilir miyiz? –