一尘不染

在Int32数组中快速使用sizeof

swift

我想用“ sizeof”得到一个数组的长度。我尝试了一切。这是错误消息:“ [Int32]无法转换为T.Type”

数组必须为Int32。

var testArray: [Int32] = [2000,400,5000,400]
var arrayLength = sizeof(testArray)

阅读 347

收藏
2020-07-07

共1个答案

一尘不染

您可以简单地通过以下方法获取数组中元素的数量

let count = testArray.count

以及其元素的总字节数

var arrayLength = testArray.count * sizeof(Int32)
// Swift 3:
var arrayLength = testArray.count * MemoryLayout<Int32>.size

sizeof与类型和sizeofValue值一起使用,因此两者

var arrayLength = sizeof([Int32])
var arrayLength = sizeofValue(testArray)

编译 。但这给您的大小,而struct Array不是元素存储的大小。

2020-07-07