Tương đương Swift của Java .toString() để in trạng thái của cá thể lớp là gì?Tương đương Swift của Java .toString()
Trả lời
Thuộc tính description
là những gì bạn đang tìm kiếm. Đây là thuộc tính được truy cập khi bạn in một biến chứa một đối tượng.
Bạn có thể thêm description
vào các lớp học của riêng mình bằng cách áp dụng giao thức CustomStringConvertible
và sau đó triển khai thuộc tính 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
cũng được sử dụng khi bạn gọi String
constructor:
let str = String(myobj) // str == "MyClass: 12"
Đây là phương pháp khuyến khích cho việc tiếp cận các mô tả ví dụ (như trái ngược với myobj.description
mà sẽ không hoạt động nếu một lớp học không triển khai CustomStringConvertible
)
Điều gì về 'String (obj)'? – nielsbot
Ngoài ra còn có '.debugDescription' để có phiên bản thân thiện hơn với lập trình viên – nielsbot
áp dụng cho cấu trúc? – lmiguelvargasf
Bạn nên sử dụng String(obj)
.
trực tiếp từ the documentation for CustomStringConvertible:
LƯU Ý
String (chẳng hạn) sẽ làm việc cho một thể hiện của bất kỳ loại, trở về mô tả của nó nếu trường hợp xảy ra là CustomStringConvertible. Sử dụng CustomStringConvertible làm ràng buộc chung, hoặc truy cập trực tiếp vào mô tả của loại phù hợp của loại phù hợp, do đó không khuyến khích.
Có vẻ như phương thức 'description()' của 'CustomStringConvertible' sẽ là đủ. –
Nếu có thể sử dụng cấu trúc thay vì lớp học, thì không cần phải làm gì thêm.
struct chỉ in tốt bản thân để đầu ra
print("\(yourStructInstance)")
hoặc với lớp như thế này: info
print(String(describing: yourClassInstance))
- 1. Tương đương Swift của Array.componentsJoinedByString?
- 2. Tương đương Swift của @encode
- 3. tương đương Swift của removeObjectsInRange:
- 4. tương đương trên Objective C/Swift của Java ThreadLocal Biến
- 5. Tương đương TreeSet của Java tương đương với Python?
- 6. Tương đương android.content.BroadcastReceiver trong Swift
- 7. Tương đương Swift cho dispatch_group_create
- 8. Tương đương Python của compareTo của Java()
- 9. .NET tương đương với List.subList của Java()?
- 10. Tương đương Java của cin (C++)
- 11. java của() tương đương trong python
- 12. Tương đương Java cho str.strip của Python()
- 13. Tương đương HashSet của Java trong PHP
- 14. Java Tương đương với DateTime.Parse của .NET?
- 15. C# tương đương với charAt của Java()?
- 16. Java tương đương với struct.pack của Python?
- 17. Java tương đương với String.match JavaScript của()
- 18. Java tương đương với preg_replace_callback của PHP
- 19. Tương đương Java 1.4.2 của Pattern.quote()
- 20. Có tương đương Java của SignalR không?
- 21. java tương đương swfobject
- 22. dispatch_barrier_async tương đương trong Swift 3
- 23. Swift tương đương với "each_cons" Ruby
- 24. Tương đương với Scala của foldLeft trong Java 8
- 25. callgrind tương đương với java?
- 26. Khối ObjectiveC Java tương đương
- 27. Java Tương đương với Reflection.Emit
- 28. Composer tương đương trong JAVA?
- 29. nameof tương đương trong Java
- 30. Java tương đương với OpenLayers
More @ http://stackoverflow.com/questions/24068506/how-can- i-thay đổi-the-text-biểu diễn-hiển thị-cho-một-loại-swift –