Ich möchte nur ein für allemal aussortieren:Swift - Strings: Sequenzen oder nicht?
In Swift. Kann der String-Datentyp wie eine Sequenz behandelt werden, z. B. Arrays und Tupel?
func printAnySequence<T: SequenceType>(anything: T) {
for element in anything {
print("\(element),")
}
}
printAnySequence("A random string")
Der obige Code erzeugt einen Compiler-Fehler mit der Meldung: „Kann printAnySequence nicht aufrufen“ mit einer Argumentliste vom Typ String.
let randomString: String = "A random string"
for char in randomString {
print(char)
}
Während der Code erzeugt über einen Compiler-Fehler mit der Meldung: „Typ‚String‘entspricht nicht das Protokoll‚SequenceType‘“
jedoch die Dokumentation für Swift ausdrücklich sagt, dass Strings Sequenzen festgelegt ist von Charakteren.
Wo ist mein Fehler?
Dank Max Xie
Die Antwort ist "Nein". Wenn Sie eine Folge von Zeichen wünschen, verwenden Sie 'string.characters'. Die Wortfolge in der Dokumentation beschreibt die Art von Strings, sie sagt nichts über den Typ 'SequenceType' aus. Ein String-Literal ist auch etwas völlig anderes. – Sulthan