Swift相当于Java .toString()

/ Mac / 没有评论 / 1377浏览

Swift相当于Java .toString()

什么是Swift等价于Java .toString()来打印类实例的状态?描述属性是您要查找的.这是打印包含对象的变量时访问的属性.您可以通过采用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"

当您调用String构造函数时也使用描述:

let str = String(myobj)  // str == "MyClass: 12"

这是访问实例描述的推荐方法(而不是myobj.description,如果类不实现CustomStringConvertible将不起作用)