Ho this question eccetto per Swift. Come utilizzare una variabile Type
in un generico?Utilizzo di una variabile di tipo generica
ho provato questo:
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.
}
Questo non ha funzionato neanche:
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.
C'è un modo per fare questo? Ho la sensazione che Swift non lo supporta e mi sta dando messaggi di errore un po 'ambigui.
Modifica: Ecco un esempio più complesso in cui il problema non può essere aggirato utilizzando un'intestazione di funzione generica. Naturalmente non ha senso, ma ho un uso ragionevole per questo tipo di funzionalità da qualche parte nel mio codice e preferisce inviare un esempio pulito invece del mio codice vero e proprio:
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>()
}
}
Mmm, quindi questo è il cuore del problema. Immagino che dovrei guardare quei video allora! – sudo