Swift中最轻量级的数据类型是什么



Swift中最轻量级的数据类型是什么。我的意思是哪种类型占用的内存空间最少。是(Bool、Int还是Character(?谢谢

您可以使用MemoryLayout来查找该信息。

当使用原始指针分配或绑定内存时,可以使用MemoryLayout作为有关类型的信息源。

苹果文档-MemoryLayout


let int8 = MemoryLayout<Int8>.size
let int16 = MemoryLayout<Int16>.size
let int32 = MemoryLayout<Int32>.size
let int64 = MemoryLayout<Int64>.size
let float = MemoryLayout<Float>.size
let double = MemoryLayout<Double>.size
let string = MemoryLayout<String>.size
let char = MemoryLayout<Character>.size
let bool = MemoryLayout<Bool>.size
print("int8 size is: (int8) byte/s")
print("int16 size is: (int16) byte/s")
print("int32 size is: (int32) byte/s")
print("int64 size is: (int64) byte/s")
print("float size is: (float) byte/s")
print("double size is: (double) byte/s")
print("string size is: (string) byte/s")
print("char size is: (char) byte/s")
print("bool size is: (bool) byte/s")

输出为->

int8 size is: 1 byte/s
int16 size is: 2 byte/s
int32 size is: 4 byte/s
int64 size is: 8 byte/s
float size is: 4 byte/s
double size is: 8 byte/s
string size is: 16 byte/s
char size is: 16 byte/s
bool size is: 1 byte/s

此外,您可以在Apple文档中找到有关这方面的一些信息

Swift中最轻量级的类型是大小为8位(1字节(的类型。

它们是标准库中的许多:Int8UInt8Bool,甚至枚举(Enum(,不到256种情况。

通过构造,任何具有这种类型的一个属性的struct都是1字节:

struct SmallInt {
var number: Int8
}

您可以使用MemoryLayout来获取此信息。请注意,类(或间接枚举,数组(被视为引用,因此它们的大小始终为8字节(62位(。

最新更新