Println 和字符串连接问题
Println and String Concatention issue
我在 swift 操场上有一个奇怪的行为。
当我输入这行代码时
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!
最后一行代码无法编译。错误是:
Expression was too complex to be solved in reasonable time; consider breaking up the expression into distinct sub-expressions
我是不是做错了什么,或者这是某种错误?似乎 println() 的限制是 5 个字符串连接?
你没有做错任何事。苹果是。
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
我在 swift 操场上有一个奇怪的行为。
当我输入这行代码时
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!
最后一行代码无法编译。错误是:
Expression was too complex to be solved in reasonable time; consider breaking up the expression into distinct sub-expressions
我是不是做错了什么,或者这是某种错误?似乎 println() 的限制是 5 个字符串连接?
你没有做错任何事。苹果是。
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