Println和String Concatenation问题

时间:2015-02-10 23:35:33

标签: swift println xcode6.1.1

我在快捷的操场上有一种奇怪的行为。

当我输入这行代码时

println("test 1" + "test 2" + "test 3" + "test 4") //compiles
println("test 1" + "test 2" + "test 3" + "test 4" + "test 5") //compiles
println("test 1" + "test 2" + "test 3" + "test 4" + "test 5" + "test 6") //error!

最后一行代码无法编译。错误是:

  

表达太复杂,无法在合理的时间内解决;考虑将表达式分解为不同的子表达式

我做错了什么,或者这是某种错误?看来println()的限制是5个字符串连接?

1 个答案:

答案 0 :(得分:2)

你没有做错任何事。 Apple是。

println函数是问题,而不是字符串连接。这给了我同样的错误:

println(1 + 2 + 3 + 4 + 5 + 6)

您可以通过声明自己的包装来解决它:

func myprint<T>(x: T) {
    println(x)
}

myprint(1 + 2 + 3 + 4 + 5 + 6)
myprint("1" + "2" + "3" + "4" + "5" + "6")
myprint("1" + "2" + "3" + "4" + "5" + "6" + "1" + "2" + "3" + "4" + "5" + "6")

输出:

21
123456
123456123456