2014-07-27 8 views
7

में जेनेरिक प्रकार शून्य है या नहीं, यह जांचने के लिए कि मैं सभी फ़ंक्शन को पायथन से स्विफ्ट करने की कोशिश कर रहा हूं, किसी सूची में किसी भी शून्य आइटम की जांच करने से शुरू हो रहा हूं, लेकिन मुझे एक कठिन समय की जांच वैकल्पिक है आइटम नहीं है। किसी कारण से मैं एक वैकल्पिक स्ट्रिंग (उदाहरण के लिए स्ट्रिंग) भेज सकता हूं और भले ही यह कहता है कि यह अभी भी एक कथन के माध्यम से गुजरता है, जो यह फ़ंक्शन के बाहर नहीं है। इस या किसी अन्य तरीके से निपटने के बारे में कोई सलाह है? धन्यवाद!स्विफ्ट

func `all`<T>(array: [T]) -> Bool { 
    for item in array { 
     if item as Any? { 
      println(item) // Says Nil >.< 
     } 
     var test: T? = item 
     if test { 
      println("Broken") // Prints broken :(
     } 
    } 
    return true 
} 

var t: String? 
all([t]) 

उत्तर

2

यह बिल्कुल अस्पष्ट है कि आप परीक्षण करने की कोशिश कर रहे हैं, लेकिन शायद इससे मदद मिलेगी।

पैरामीटर कार्य करने के लिए optionals [T?]

की किसी सरणी यह ​​भी सीधे nil के तत्वों की तुलना करने के लिए फायदेमंद हो सकता है किया जाना चाहिए। तुलना को filter फ़ंक्शन उपयोगों की तरह बंद करने के लिए समझा जा सकता है।

func all<T>(array: [T?]) -> Bool { 
    for element in array { 
     if element==nil { 
      return false 
     } 
    } 
    return true 
}