Страницы

Поиск по вопросам

воскресенье, 2 февраля 2020 г.

Class или struct в Swift?

#swift #классы


Когда лучше использовать класс, а когда структуру в Swift?
    


Ответы

Ответ 1



Основное различие в том, что структуры передаются по значению, а классы — по ссылке. С точки зрения производительности важно, что экземпляры структур могут быть созданы в стеке, а экземпляры классов — только в куче. В соответствии с The Swift Programming Language: Структуры подходят, если выполняется одно или несколько условий: Инкапсуляция небольшого набора простых значений. Значения следует копировать, а не передавать по ссылке. Свойства самой структуры — value-типы, которые тоже передаются по значению. Структуры не наследует свойства или поведения. Хорошие примеры: Размеры фигуры: ширина и высота. Точка в пространства: x, y и z типа double. В большинстве случаев следует использовать классы.

Ответ 2



Предлагаю такие вопросы себе задавать: 1) Нужно ли мне наследование? 2) Нужно ли использовать классовые дженерики ('class SomeClass: ClassName')? 3) Нужно ли будет такое, чтобы инстанс объекта был доступен из нескольких мест и его можно было менять из них. (объект по ссылке, вместо копирования)? 4) Нужен ли деинициализатор? Если на все ответ нет, то используйте структуру.

Комментариев нет:

Отправить комментарий