Ich habe ein kleines Problem mit einem Swift-Tutorial...
func exchange(inout data:[T], i:Int, j:Int)
{
let temp = data[i];
data[i] = data[j];
data[j] = temp;
}
func swapLeft(data: [T], index:Int)
{
for i in reverse(1...index)
{
if (data[i] < data[i - 1])
{
exchange(&data, i, i - 1);
}
else
{
break;
}
}
}
var data = [Int]();
data = [84, 0, 1, 63, 20, 12, 11, 63, 13, 99, 89, 98, 94, 31, 88, 48, 90, 30, 68, 43];
swapLeft(data, 6);
data
In swapLeft
ruft der Austausch einen Fehler hervor:
Playground-Ausführung fehlgeschlagen: Fehler: :32:13: Fehler: '[T]' ist kein Subtyp von '@lvalue $T3'
Ich habe eine vage Vermutung, dass dies daran liegt, dass swapLeft
eine Comparable-Generik verwendet, der Austausch jedoch eine nicht Comparable-Generik verwendet. Aber das Ändern von exchange zu func exchange...
wird es nicht beheben. Weiß jemand, was man in diesem Fall tun kann?