Я могу читать int, float, double как строку с использованием строковой интерполяции или инициализатора строки. результат всегда один и тот же.
var a: Int = 2
var c: Character = "e"
var d: String = "\(a)\(c)"
OR
var d: String = String(a) + String(c)
результат такой же. d имеет значение "2e"
Единственное отличие, которое я обнаружил, это то, что строка интерполяции() может использоваться внутри двойных кавычек, тогда как String() не может использоваться внутри двойных кавычек.
Это все? Я что-то пропустил?