Come restituire un array mutabile da una funzione?Restituzione di un array mutabile da una funzione
Ecco un breve frammento di codice per renderlo più chiaro:
var tasks = ["Mow the lawn", "Call Mom"]
var completedTasks = ["Bake a cake"]
func arrayAtIndex(index: Int) -> String[] {
if index == 0 {
return tasks
} else {
return completedTasks
}
}
arrayAtIndex(0).removeAtIndex(0)
// Immutable value of type 'String[]' only has mutating members named 'removeAtIndex'
I seguenti lavori frammento, ma devo tornare un Array
, non un NSMutableArray
var tasks: NSMutableArray = ["Mow the lawn", "Call Mom"]
var completedTasks: NSMutableArray = ["Bake a cake"]
func arrayAtIndex(index: Int) -> NSMutableArray {
if index == 0 {
return tasks
} else {
return completedTasks
}
}
arrayAtIndex(0).removeObjectAtIndex(0)
tasks // ["Call Mom"]
Grazie!
Grazie per la tua risposta, ha assolutamente senso. Tuttavia, vale la pena notare che nell'intero programma, 'tasks' e' completedTasks' sono variabili di istanza (dichiarate con 'var') e sto restituendo' self.tasks' e 'self.completedTasks'. Non riesco a creare una copia dell'array restituito, rimuovere un elemento e riassegnare la variabile di istanza ad esso perché le variabili di istanza vengono trasformate come non mutabili. In che modo le variabili di istanza possono essere trasformate come non modificabili dopo essere state restituite da una funzione? – Damien