Ответ 1
Если вы хотите поместить число внутри строки, вы можете просто использовать String Interpolation:
return "first \(myVariable)"
Мне нужно объединить String
и Int
как Int
ниже:
let myVariable: Int = 8
return "first " + myVariable
Но не компилируется, с ошибкой:
Двоичный оператор '+' нельзя применять к операндам типа 'String' и 'Int'
Как правильно связать String + Int?
Если вы хотите поместить число внутри строки, вы можете просто использовать String Interpolation:
return "first \(myVariable)"
У вас есть два варианта;
return "first " + String(myVariable)
или же
return "first \(myVariable)"
Если вы это делаете, подумайте о том, чтобы оператор стал более читаемым:
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, а не только +++
.
Optional
ключевое слово появится, если вы пометили переменную как необязательную с помощью !
во время декларации.
Чтобы избежать опционального ключевого слова в выводе на печать, у вас есть два варианта:
(!)
Рядом с переменнойВ вашем случае это будет работать нормально
return "first \(myVariable!)"
Чтобы добавить Int в строку, вы можете сделать:
return "first \(myVariable)"
Вот документация о Строка и символы
var variableString = "Horse"
variableString += " and carriage"
// variableString is now "Horse and carriage"