Подтвердить что ты не робот

Объединить число со строкой в ​​Swift

Мне нужно объединить String и Int как Int ниже:

let myVariable: Int = 8
return "first " + myVariable

Но не компилируется, с ошибкой:

Двоичный оператор '+' нельзя применять к операндам типа 'String' и 'Int'

Как правильно связать String + Int?

4b9b3361

Ответ 1

Если вы хотите поместить число внутри строки, вы можете просто использовать String Interpolation:

return "first \(myVariable)"

Ответ 2

У вас есть два варианта;

return "first " + String(myVariable)

или же

return "first \(myVariable)"

Ответ 3

Если вы это делаете, подумайте о том, чтобы оператор стал более читаемым:

func concat<T1, T2>(a: T1, b: T2) -> String {
    return "\(a)" + "\(b)"
}

let c = concat("Horse ", "cart") // "Horse cart"
let d = concat("Horse ", 17) // "Horse 17"
let e = concat(19.2345, " horses") // "19.2345 horses"
let f = concat([1, 2, 4], " horses") // "[1, 2, 4] horses"

operator infix +++ {}
@infix func +++ <T1, T2>(a: T1, b: T2) -> String {
    return concat(a, b)
}

let c1 = "Horse " +++ "cart"
let d1 = "Horse " +++ 17
let e1 = 19.2345 +++ " horses"
let f1 = [1, 2, 4] +++ " horses"

Вы можете, конечно, использовать любой действительный оператор infix, а не только +++.

Ответ 4

Optional ключевое слово появится, если вы пометили переменную как необязательную с помощью ! во время декларации.

Чтобы избежать опционального ключевого слова в выводе на печать, у вас есть два варианта:

  1. Отметьте необязательную переменную как необязательную. Для этого вам нужно будет указать значение по умолчанию.
  2. Используйте символ принудительной разворачивания (!) Рядом с переменной

В вашем случае это будет работать нормально

return "first \(myVariable!)"

Ответ 5

Чтобы добавить Int в строку, вы можете сделать:

return "first \(myVariable)"

Ответ 6

Вот документация о Строка и символы

var variableString = "Horse"
variableString += " and carriage"
// variableString is now "Horse and carriage"