Swift:在字符串文字中提供默认值

时间:2019-04-10 11:54:06

标签: swift optional string-literals

我将提供一个可选字符串的默认值,该字符串放置在String文字内作为参数(如果我使用了正确的关键字!)。 我想知道如何使用“ ??”为其设置默认值。运算符?

我认为我应该在双引号之前使用转义字符,但是我不知道正确的语法是什么。 这是导致错误的语法:

print ("Error \(response.result.error ?? "default value") ")
//------------------------ what should be ^here^^^^^^^^

2 个答案:

答案 0 :(得分:3)

您必须从字面上用您的消息代替default value

因为您位于\(<expression>)之内,所以无需转义双引号(有关Swift的字符串插值here的更多信息)

如果您需要更清洁的方法,请分两个步骤进行操作:

let msg = response.result.error ?? "whatever"
print("Error: \(msg)") 

最后,如果您只想输出非零错误(避免在日志中记录未产生任何错误的错误),则可以执行以下操作:

if let error = response.result.error { print("Error: \(error)") }

答案 1 :(得分:3)

只需将其包装在括号中即可

print("Error \((response.result.error ?? "default value"))")

更干净的方法是使用@Alladinian答案,然后在打印之前将字符串放入变量中