में टाइप वेरिएबल का उपयोग करना मेरे पास स्विफ्ट को छोड़कर this question है। मैं एक सामान्य में Type
चर का उपयोग कैसे करूं?जेनेरिक
मैं इस कोशिश की:
func intType() -> Int.Type {
return Int.self
}
func test() {
var t = self.intType()
var arr = Array<t>() // Error: "'t' is not a type". Uh... yeah, it is.
}
यह या तो काम नहीं किया:
var arr = Array<t.Type>() // Error: "'t' is not a type"
var arr = Array<t.self>() // Swift doesn't seem to even understand this syntax at all.
वहाँ यह करने के लिए कोई तरीका है? मुझे यह महसूस हो रहा है कि स्विफ्ट सिर्फ इसका समर्थन नहीं करता है और मुझे कुछ हद तक संदिग्ध त्रुटि संदेश दे रहा है।
संपादित करें: यहां एक और जटिल उदाहरण है जहां समस्या को सामान्य फ़ंक्शन हेडर का उपयोग करके अवरुद्ध नहीं किया जा सकता है। बेशक यह मतलब नहीं है, लेकिन मैं अपने कोड में कहीं कार्यक्षमता के इस प्रकार के लिए एक समझदार उपयोग किया है और नहीं बल्कि अपने वास्तविक कोड के बजाय एक स्वच्छ उदाहरण पोस्ट होगा:
func someTypes() -> [Any.Type] {
var ret = [Any.Type]()
for (var i = 0; i<rand()%10; i++) {
if (rand()%2 == 0){ ret.append(Int.self) }
else {ret.append(String.self) }
}
return ret
}
func test() {
var ts = self.someTypes()
for t in ts {
var arr = Array<t>()
}
}
एमएमएम, तो यह समस्या का दिल है। मुझे लगता है कि मुझे तब उन वीडियो देखना चाहिए! – sudo