Какой самый легкий тип данных в Swift? - PullRequest
0 голосов
/ 14 апреля 2020

Какой самый легкий тип данных в Swift. Я имею в виду, какой тип занимает меньше всего памяти. Это (Bool, Int или Character)? Спасибо.

Ответы [ 2 ]

5 голосов
/ 14 апреля 2020

Вы можете использовать MemoryLayout для поиска этой информации.

Вы можете использовать MemoryLayout в качестве источника информации о типе при выделении или привязке памяти с использованием необработанных указателей.

Документация Apple - 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

2 голосов
/ 14 апреля 2020

Наиболее легкие типы в Swift - это те, которые имеют размер 8 бит (1 байт).

Их много в стандартной библиотеке: Int8, UInt8, Bool и четные перечисления (Enum) с менее чем 256 случаями.

По построению любое struct с одним свойством этого типа составляет 1 байт:

struct SmallInt {
  var number: Int8
}

Вы можете использовать MemoryLayout чтобы получить эту информацию. Обратите внимание, что класс (или косвенное перечисление, Array's) рассматривается как ссылка, поэтому их размер всегда составляет 8 байт (62 бита).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...