Ich denke, dass eine schnelle Antwort für das erste Zeichen sein könnte:
let firstCharacter = aString[aString.startIndex]
Es ist viel eleganter und leistungsfähiger als:
let firstCharacter = Array(aString.characters).first
Aber.. wenn du Strings manipulieren und mehr Operationen damit durchführen möchtest, könntest du darüber nachdenken, eine Erweiterung zu erstellen..hier ist eine Erweiterung mit diesem Ansatz, die ziemlich ähnlich zu der bereits hier geposteten ist:
extension String {
var length : Int {
return self.characters.count
}
subscript(integerIndex: Int) -> Character {
let index = startIndex.advancedBy(integerIndex)
return self[index]
}
subscript(integerRange: Range) -> String {
let start = startIndex.advancedBy(integerRange.startIndex)
let end = startIndex.advancedBy(integerRange.endIndex)
let range = start..
`
}
ABER ES IST EINE SCHRECKLICHE IDEE!!
Die untenstehende Erweiterung ist furchtbar ineffizient. Jedes Mal, wenn auf einen String mit einem Integer zugegriffen wird, wird eine O(n)-Funktion ausgeführt, um seinen Startindex zu erhöhen. Das Ausführen einer linearen Schleife innerhalb einer anderen linearen Schleife bedeutet, dass diese Schleife versehentlich O(n2) ist - mit zunehmender Länge des Strings steigt die Zeit, die diese Schleife benötigt, quadratisch an.
Anstatt das zu tun, könntest du die Zeichenfolgensammlung des Strings verwenden.
`