¿Cómo funciona String.Index en Swift?
He estado actualizando algunos de mis códigos y respuestas anteriores con Swift 3, pero cuando llegué a Swift Strings and Indexing fue muy difícil entender las cosas.
Específicamente estaba intentando lo siguiente:
let str = "Hello, playground"
let prefixRange = str.startIndex..<str.startIndex.advancedBy(5) // error
donde la segunda línea me daba el siguiente error
'advancedBy' no está disponible: para avanzar un índice en n pasos, llame a 'index (_: offsetBy :)' en la instancia de CharacterView que produjo el índice.
veo queString
tiene los siguientes métodos
str.index(after: String.Index)
str.index(before: String.Index)
str.index(String.Index, offsetBy: String.IndexDistance)
str.index(String.Index, offsetBy: String.IndexDistance, limitedBy: String.Index)
Al principio me confundían mucho, así que comencé a jugar con ellos hasta que los entendí. Añado una respuesta a continuación para mostrar cómo se usan.