在學習Swift 3的過程中整理了一些筆記,如果想看其他相關文章可前往《Swift 3必看》系列目錄
sizeof
這個方法名直接取自C語言,但是實際上LLVM中並沒有一個函式叫sizeof
。而且sizeof
的使用範圍很窄,不像map
,filter
這種經常會全域性用到。所以重新定義了一個結構體 MemoryLayout
來實現原來sizeof
的功能,使用上也有變化。
主要有兩種方式,一種是直接通過泛型引數從靜態變數獲取:
let stringSize = MemoryLayout<String>.size複製程式碼
也可以通過呼叫靜態方法獲取
let stringValue = "A"
let varSize = MemoryLayout.size(ofValue: stringValue)複製程式碼
兩者都會得到正確的結果:
除了sizeof
, MemoryLayout還可以獲取stride
, alignment
。
歡迎關注我的微博:@沒故事的卓同學
相關連結: SE-0101-Reconfiguring sizeof and related functions into a unifiedMemoryLayout struct