‘subscript’ is unavailable: cannot subscript String with an Int, see the documentation comment for discussion Swift 4?

Ошибка "subscript недоступен: невозможно выполнить индексацию строки целым числом" означает, что вы пытаетесь выполнить индексацию строки с использованием целого числа в Swift 4. В Swift строки представляют собой коллекции символов, и каждый символ имеет свой индекс.

В Swift 4 работа с символами строки должна выполняться через использование типа String.Index. Использование целых чисел для индексации отключено, чтобы уменьшить возможность ошибок, связанных с работой с многобайтными символами в строках Unicode.

Для того чтобы исправить ошибку, вам необходимо использовать методы и свойства, предоставляемые типом String, чтобы получить доступ к символам строки.

Вот несколько примеров, демонстрирующих работу с символами строки в Swift 4:

1. Для получения символа по определенному индексу, вы можете использовать метод index(_:offsetBy:) и свойство self[]. Например:

let str = "Hello, World!"
let index = str.index(str.startIndex, offsetBy: 7)
let char = str[index] // "W"

2. Чтобы получить все символы строки, можно использовать цикл for-in. Например:

let str = "Hello, World!"
for char in str {
    print(char) // "H", "e", "l", "l", "o", ",", " ", "W", "o", "r", "l", "d", "!"
}

3. Если вам нужно получить подстроку из исходной строки, вы можете использовать метод prefix(_:) или suffix(_:). Например:

let str = "Hello, World!"
let prefix = str.prefix(5) // "Hello"
let suffix = str.suffix(6) // "World!"

4. Если вам нужно выполнить более сложные операции с символами строки, такие как замена символов или удаление пробелов, вы можете использовать методы filter(_:) или map(_:), сочетая их с методами split(separator:) или joined(separator:). Например:

let str = "Hello, World!"
let filtered = str.filter { $0 != "o" } // "Hell, Wrld!"
let reversed = str.reversed() // "!dlroW ,olleH"
let words = str.split(separator: " ") // ["Hello,", "World!"]
let joined = words.joined(separator: "-") // "Hello,-World!"

Это лишь несколько примеров работы с символами строки в Swift 4. Обратитесь к официальной документации Swift 4 для более подробного объяснения и большего количества примеров использования.