无论如何使用字符串文字作为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语句中的参数。
答案 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
。在操场上试试后者,看看为什么。