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字节(的类型。
它们是标准库中的许多:Int8
、UInt8
、Bool
,甚至枚举(Enum
(,不到256种情况。
通过构造,任何具有这种类型的一个属性的struct
都是1字节:
struct SmallInt {
var number: Int8
}
您可以使用MemoryLayout
来获取此信息。请注意,类(或间接枚举,数组(被视为引用,因此它们的大小始终为8字节(62位(。