4
A
回答
4
的documentation似乎表明,在插值字符串逃逸文字在某種程度上可能
你寫內部的表達式插值字符串中的括號不能包含轉義雙引號( 「)或反斜槓(),並且不能包含回車或換行符
但是,據我所知,目前沒有辦法。
可能的解決方法是字符串連接:
"Number of items: " + (items > 0 ? "\(items)" : "zero")
,或者乾脆利用一個可變
let nOfItems = items > 0 ? "\(items)" : "zero"
"Number of items: \(nOfItems)"
2
作爲替代@加布裏埃爾的解決方案,你也可以使用封,其中有一個是優勢在渲染字符串時評估:
var items = 0
let formatString = {() -> String in
let expression = {() -> String in
return items > 0 ? String(items) : "zero"
}
return "Number of items: \(expression())"
}
formatString() // returns "Number of items: zero"
items = 12
formatString() // returns "Number of items: 12"
+0
或者您可以使用'lazy var',儘管在這個特定情況下它看起來不是一個大問題。 – 2014-09-23 15:17:19
0
它現在適用於Swift 2.1(自Xcode 7 beta 3以來)。
從發行說明:
表達的串插現在可以包含字符串文字。
你舉的例子是現在有效:
let result = "Number of items: \(items > 0 ? String(items) : "zero")"
在雨燕2.1爲您具體的例子,現在有一個爲三元運算符的返回結果int和string之間的類型不匹配,所以我不得不做出一個微小的變化 - 但與"zero"
相關的部分現在是有效的。
相關問題
- 1. 表達式的真值表(字符串)
- 2. JSTL從字符串表達式求值
- 3. 多行C#插值字符串字面
- 4. Scala:匹配字符串插值的正則表達式
- 5. 字符串插值內部的字符串插值
- 6. 評價條件(三元)在C#插值字符串表達式$
- 7. 斯卡拉字符串插值和評估表達式
- 8. 在javascript代碼的字符串中查找正則表達式字面值
- 9. 使用字符串賦值和獲取值的表達式樹
- 10. 使用正則表達式在Java字符串中轉義字面值
- 11. JavaScript字符串模板字面值在角度表達式中不起作用
- 12. 正則表達式字符串插入
- 13. c中的字符串字面值
- 14. 從java中的字符串值的數學表達式中格式化數字
- 15. 寬字符字符串字面值
- 16. 如何在此字符串插值得到的字符串值
- 17. 插值模擬(字符串格式化)
- 18. 結合字符串插值和字符串格式
- 19. 正則表達式來替換字符串中的現金值
- 20. 從字符串中提取onclick值的正則表達式
- 21. 在Python中隱藏字符串表達式的數值
- 22. 正則表達式匹配字符串中的「時間」值
- 23. 如何用值替換字符串中的表達式?
- 24. 正則表達式:取字符串字面特別重字符
- 25. 任何Ruby的#{}值(字符串插值)
- 26. 斯卡拉字符串插值。正則表達式中的`raw`前綴
- 27. Scala字符串插值
- 28. c# - 字符串插值
- 29. JavaScript字符串插值
- 30. Bash字符串插值wget
您需要在變通方法中使用'「\(items)」',否則它們將無法工作。 – vacawama 2014-09-23 17:05:29
@vacawama公平點,謝謝 – 2014-09-23 17:08:15