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

问题描述:

无论如何,在一个println语句中使用一个字符串文字作为参数的一个参数。字符串文字作为println中func的参数吗?

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

我试图做(我想逃避围绕地球行星引号)。

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

您也可以做到这一点:

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

而这个工程太:

println(greetings("Earthling")) 

我试过escap在第一个例子中引号,但没有运气,它不是特别重要,因为它只是一个测试,我只是好奇是否有办法做到这一点,使用字符串文字作为参数的函数调用打印或包含其他文本的println语句。

+0

您对自己的问题发表了评论。很混乱。 :S – 2014-10-20 13:37:01

+0

啊。我以为他打算评论你的答案并错过了。 :) – 2014-10-20 14:06:17

从Apple文档:

表达你写内插值 字符串中的括号不能包含转义双引号(“)或反斜线(\), 并不能包含回车或换行喂。

+0

很酷,谢谢你,总结了一些事情......非常感谢。 – fuzzygoat 2014-10-20 14:06:29

+1

请注意,由于您不能使用反斜杠,因此您也不能在其中放置一个转义双引号。唯一的方法是将字符串文字放入一个变量中并使用它。 – 2014-10-20 16:57:31

的问题当然不是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。在操场上试试后者,看看为什么。