環境
Swift 5.3.2
StringはCollectionに準拠しているので元々 text[position]
でアクセスできますが、subscriptの引数に指定できるものはString.Indexという型なのでIntを指定する事はできません。
そのため以下のextensionを記述することでInt型でCharacterを取得することができます。
extension StringProtocol {
subscript(offset: Int) -> Character? {
guard offset < count else { return nil }
let index = self.index(startIndex, offsetBy: offset)
return startIndex <= index && index < endIndex ? self[index] : nil
}
}