字符串文字作为println中func的参数?

时间:2014-10-20 13:14:16

标签: ios function swift

无论如何使用字符串文字作为println语句中函数的参数。

func greetings(name: String) -> String {
    return "Greetings \(name)!"
}

我想做的事情:(我试图绕过Earthling周围的引号。)

println("OUTPUT: \(greetings("Earthling"))")

您也可以这样做:

let name = "Earthling"
println("OUTPUT: \(greetings(name))")

这也有效:

println(greetings("Earthling"))

我尝试在第一个示例中转义引号,但没有运气,它不是非常重要,因为它只是一个测试,我只是好奇是否有办法做到这一点,使用带字符串文字的函数调用作为包含其他文本的print或println语句中的参数。

2 个答案:

答案 0 :(得分:1)

来自Apple文档:

  

在插值中用括号内写的表达式   string不能包含未转义的双引号(“)或反斜杠(\),   并且不能包含回车或换行。

答案 1 :(得分:0)

问题当然不是println,而是在字符串文字中嵌入带引号的表达式。 因此

let b = false
let s1 = b ? "is" : "isn't"
let s2 = "it \(b ? "is" : "isn't")" // won't compile

然而NSLog作为一个单线''在这里工作得很好

NSLog("it %@", b ? "is" : "isn't")

注意%@,而不是%s。在操场上试试后者,看看为什么。