在Swift中用字符串连接数字

时间:2014-07-09 06:32:04

标签: string nsstring swift

我需要连接StringInt,如下所示:

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

但它没有编译,错误:

  

二元运算符' +'不能应用于' String'类型的操作数和' Int'

连接String + Int的正确方法是什么?

6 个答案:

答案 0 :(得分:62)

如果您想在字符串中添加数字,可以使用String Interpolation

return "first \(myVariable)"

答案 1 :(得分:41)

您有两个选项;

return "first " + String(myVariable)

return "first \(myVariable)"

答案 2 :(得分:4)

要将Int添加到String,您可以执行以下操作:

return "first \(myVariable)"

答案 3 :(得分:4)

如果您正在做很多事情,请考虑让操作员更具可读性:

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"

当然,您可以使用任何有效的中缀运算符,而不仅仅是+++

答案 4 :(得分:3)

在声明期间将Optional标记为可选变量时,

!关键字会出现。

要避免打印输出中的Optional关键字,您有两个选择:

  1. 将可选变量标记为非可选。为此,你将拥有 给出默认值。
  2. 在变量旁边使用强制解包(!)符号
  3. 在你的情况下,这可以正常工作

    return "first \(myVariable!)"

答案 5 :(得分:0)

以下是有关String and characters

的文档
var variableString = "Horse"
variableString += " and carriage"
// variableString is now "Horse and carriage"