在Swift中连接数字和字符串

53

我需要将一个StringInt进行拼接,如下所示:

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

但它无法编译,报错如下:

二元操作符“+”不能应用于类型为“String”和“Int”的操作数

如何正确的将字符串和整数进行拼接?

7个回答

82

如果你想在字符串中嵌入数字,你只需要使用字符串插值

return "first \(myVariable)"

1
当像上面那样使用时,它会返回“Optional(value)”。 - SHA2NK

62

你有两个选项;

return "first " + String(myVariable)
或者
return "first \(myVariable)"

8

如果要将一个整数添加到字符串中,可以这样做:

return "first \(myVariable)"

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"

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


3

Optional关键字会在您在声明时使用!标记变量为可选项时出现。

为了避免在打印输出中出现Optional关键字,您有两个选项:

  1. 将可选变量标记为非可选。为此,您需要提供默认值。
  2. 在变量旁边使用强制解包(!)符号

在您的情况下,这将完美地发挥作用

return "first \(myVariable!)"


2
var a = 2
var b = "Hello W"
print("\(a) " + b)

将会打印出2 Hello W


-3

这里是关于字符串和字符的文档。

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

1
问题是关于将其与整数连接起来。 - CW0007007

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接