我需要将一个String
和Int
进行拼接,如下所示:
let myVariable: Int = 8
return "first " + myVariable
但它无法编译,报错如下:
二元操作符“+”不能应用于类型为“String”和“Int”的操作数
如何正确的将字符串和整数进行拼接?
如果你想在字符串中嵌入数字,你只需要使用字符串插值:
return "first \(myVariable)"
你有两个选项;
return "first " + String(myVariable)
或者return "first \(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"
当然,您可以使用任何有效的中缀运算符,而不仅限于 +++
。
Optional
关键字会在您在声明时使用!
标记变量为可选项时出现。
为了避免在打印输出中出现Optional关键字,您有两个选项:
(!)
符号在您的情况下,这将完美地发挥作用
return "first \(myVariable!)"
var a = 2
var b = "Hello W"
print("\(a) " + b)
将会打印出2 Hello W
这里是关于字符串和字符的文档。
var variableString = "Horse"
variableString += " and carriage"
// variableString is now "Horse and carriage"