Java .toString()用於打印類實例狀態的Swift等效項是什麼?Swift等效於Java .toString()
回答
該description
屬性是你在找什麼。這是打印包含對象的變量時訪問的屬性。
您可以將description
添加到您自己的類中,方法是採用協議CustomStringConvertible
,然後執行description
屬性。
class MyClass: CustomStringConvertible {
var val = 17
public var description: String { return "MyClass: \(val)" }
}
let myobj = MyClass()
myobj.val = 12
print(myobj) // "MyClass: 12"
description
當你調用String
構造也可用於:
let str = String(myobj) // str == "MyClass: 12"
這是訪問實例說明(而不是myobj.description
推薦的方法,如果一個類沒有將無法正常工作實施CustomStringConvertible
)
'String(obj)'怎麼辦? – nielsbot
還有'.debugDescription'更適合程序員的版本 – nielsbot
它適用於結構嗎? – lmiguelvargasf
您應該使用String(obj)
。
直接從the documentation for CustomStringConvertible:
注意
字符串(例如)適用於任何類型的實例工作,如果實例恰好是CustomStringConvertible返回其 描述。 因此不鼓勵使用CustomStringConvertible作爲通用約束,或直接訪問符合類型的描述。
似乎'CustomStringConvertible'的'description()'方法就足夠了。 –
如果可以使用結構而不是類,那麼沒有額外的工作。
結構只是打印精細本身輸出
print("\(yourStructInstance)")
或類是這樣的:
print(String(describing: yourClassInstance))
- 1. toString()等效於OCaml
- 2. PHP等效於sha1.toString(CryptoJS.enc.Base64)
- 3. Swift等效於Java中的Enum.ordinal()
- 4. Swift等效於(__bridge NSArray *)
- 5. Yacc等效於Java
- 6. java等效於nsdate
- 7. 等效於Java的
- 8. 等效於Java的
- 9. #ifdef等效於Java?
- 10. DebugBreak等效於Java?
- 11. arc4random等效於Java?
- 12. doesNotRecognizeSelector等效於Java
- 13. Exceldna等效於Java
- 14. Java SHA1等效於C#
- 15. PHP等效於Java Servlet
- 16. TPL等效於Java/Android
- 17. 等效於Java的C++庫?
- 18. KeyStorage .Net等效於Java?
- 19. Javascript等效於StringEscapeUtils.escape java
- 20. C++等效於Java Collection.frequency?
- 21. jdeps等效於Java 7
- 22. C#Uri.EscapeDatastring()等效於Java
- 23. 等效於Java中的memcmp()?
- 24. Swift等效於Java的indexOf和lastIndexOf的字符串
- 25. For循環等效Swift 3
- 26. Swift等價於ValueForKey:
- 27. 使用註釋生成等於/ hashcode/toString
- 28. scala specs2。等於支票依託的toString
- 29. Java MAX_PATH等效?
- 30. 等效於JavaScript的Java的的getBytes的
更多信息@ http://stackoverflow.com/questions/24068506/how-can- i-change-the-textual-representation-displayed-a-type-in-swift –