swift 打印引用類型地址,值類型地址

swift 5.x 版本

類型 打印
refrence type引用類型 print(Unmanaged.passUnretained(testType).toOpaque()) 替換testType為你的引用類型
object instance,metatype print(ObjectIdentifier(testType)) testType 為你的類型
value type 值類型 print(UnsafePointer(&testType))替換testType 為你的類型
struct PersonS {
}

class Friend: CustomStringConvertible{
    var name: String = "Friend"
    var description: String {
        return "name = \(name)"
    }
}

class Person: CustomStringConvertible {
    var age: Int = 20
    var friend: Friend = Friend()
    
    var description: String {
        return "age = \(age) friend: + \(friend.description)"
    }
}

let lee = Person()
lee.friend.name = "lee"
let han = lee
han.friend.name = "lee"
han.age = 21

print(lee)
print(han)

var ps = PersonS()
// 引用類型
print(Unmanaged.passUnretained(han).toOpaque()) //打印引用類型
print(Unmanaged.passUnretained(lee).toOpaque()) //打印引用類型
print(UnsafePointer(&ps)) //打印地址 值類型

//ObjectIdentifier 支持實(shí)例,元類型,不支持 enum, struct,func,tuple
print(ObjectIdentifier(Person.self)) // 打印 元類型
print(ObjectIdentifier(han)) // 打印 對(duì)象實(shí)例
print(ObjectIdentifier(han.self)) // 打印 對(duì)象實(shí)例

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容