💻 Структуры (struct) или записи (record)

  Рет қаралды 8,830

Timur Shemsedinov

Timur Shemsedinov

Күн бұрын

Примеры кода: github.com/How...
Индекс каналов и групп сообщества Метархия: github.com/How...
Патреон: / tshemsedinov

Пікірлер: 29
@АнтонСухов-н9у
@АнтонСухов-н9у 2 жыл бұрын
2:02 - Пример структур на C 4:36 - Пример на Pascal 7:10 - Пример на Rust 8:12 - Пример на JavaScript 9:15 - Пример с использованием классов 16:35 - Пример на TypeScript 18:30 - Резюме
@sterlo-x8z
@sterlo-x8z 4 жыл бұрын
Тимур, вы очень круты! Магия вашего материала делает из кодеров программистов. Доносите фундаментальные знания до масс. Спасибо!)
@oldodyn
@oldodyn 4 жыл бұрын
уже успел с struct познакомиться в Rust. Видео смотрелось как повтор пройденного материала, легко )
@404Negative
@404Negative 2 ай бұрын
теперь стало понятно почему в js у функций конструкторов принято методы вешать на прототип, а не на создаваемый экземпляр непосредственно.
@Wra-ij8yk
@Wra-ij8yk 11 ай бұрын
То есть вопрос использовать классы или структуры(обьекты, классы без методов) зависит от моделируемой сущности из предметной области? А есть какие-то плюсы от использования структур? Ну плюсов наверное нет от реализации структуры на js в виде обьектов
@TimurShemsedinov
@TimurShemsedinov 11 ай бұрын
зависит от того, есть ли у этой сущности поведение или нет. У записи про пользователя, например, или у товара на складе поведения нет, оно есть у пользователя, но не у записи про пользователя. Если мы моделируем паспорт, то метод выдатьПаспорт будет не у паспорта, а у органа, который выдает паспорт, а у паспорта ни каких методов нет, это структура.
@Wra-ij8yk
@Wra-ij8yk 11 ай бұрын
@@TimurShemsedinov, понял спасибо
@timashoff
@timashoff Жыл бұрын
Спасибо!
@AndersonSilva-dg4mg
@AndersonSilva-dg4mg 4 жыл бұрын
Ого Сишка, не жаваскрипт
@TimurShemsedinov
@TimurShemsedinov 4 жыл бұрын
Пока что-то помню, папа может си
@realfootball338
@realfootball338 3 жыл бұрын
Ну ибо JS по образу и подобию Си. А вообще они очень похожи. Сегодня самые популярные и практичные языки Си подобные, причем чем более похоже на Си тем популярнее.
@Antonio-fm1sq
@Antonio-fm1sq 3 жыл бұрын
Спасибо.
@masterguyver84
@masterguyver84 4 жыл бұрын
Супер, в С++ был по-моему еще union. Как сказано сейчас он устарел, или я ошибаюсь? Он актуален и для чего использовался. В книгах это вскользь описывается.
@TimurShemsedinov
@TimurShemsedinov 4 жыл бұрын
Все ок с юнионом в C, это способ обращаться к одному и тому же куску памяти как к разным типам, т.е. можно объединить юнионом char и byte и они будут в одной памяти храниться, а обращение разное.
@masterguyver84
@masterguyver84 4 жыл бұрын
@@TimurShemsedinovСпасибо. Я помню, как я таким способом пытался выполнить задание создать двусвязный список на С++, который мог бы хранить значения любого типа. Там меня раскритиковали, описали типу вот union не используется уже в С++. Я пишу в старом стиле. На том мои пробы и окончились. Но механизм как мне помнится работал. Такие разные программисты-критики.
@TimurShemsedinov
@TimurShemsedinov 4 жыл бұрын
@@masterguyver84 это правильнее делать на днерериках (обобщенном программировании, шаблонах)
@masterguyver84
@masterguyver84 4 жыл бұрын
@@TimurShemsedinov Вот на тот период я этого не знал спасибо.
@realfootball338
@realfootball338 3 жыл бұрын
Насколько я знаю в C++ когда дело доходит до производительности то использоваться может все - и вне зависимости от красоты применения.
@realfootball338
@realfootball338 3 жыл бұрын
Постойте если генерировать массивы структур то C ничем не хуже C++. Я заинтересовался сишкой.
@TimurShemsedinov
@TimurShemsedinov 3 жыл бұрын
C вообще гораздо лучше C++, как на меня
@kusov4748
@kusov4748 4 жыл бұрын
Иногда мне кажется, что ваши знания в кодинге бесконечны
@artem_travlo
@artem_travlo Жыл бұрын
Получается структура это типа упрощенный обьект без методов не ссылочного типа. А обычный скаляр который можно сравнивать между собой. Но в js такая фигня отсутствует.
@TimurShemsedinov
@TimurShemsedinov Жыл бұрын
Скаляр это по определению одно значение. Структуры собираются вводить в js, уже есть проект стандарта
@cassinid8843
@cassinid8843 4 жыл бұрын
Было бы хорошо поменять видео в плейлисте, чтобы были по порядку.
@TimurShemsedinov
@TimurShemsedinov 4 жыл бұрын
Эх, как будет время
@maksimsergeevich5939
@maksimsergeevich5939 2 жыл бұрын
Я вот сейчас потратил час на философский спор с самим собой о применении классов и структур. Я все понял, в каком случае применяются классы, а в каком случае структуры. Но в итоге у меня образовался ментальный конфликт: я теперь не понимаю рациональную суть в применении в одном приложении одного и другого подходов одновременно: классы и структуры с имплементацией методов. Типа, в классах у нас структуры у которых есть свое поведение, а если у структуры нет своего поведения то считается правильным реализовать такую структуру как структуру с имплементацией методов (если нужно что-то посчитать с этими данными). И в чем прикол? Мы в любом способе в итоге будем вызывать методы у конкретного инстанса структуры данных (класса или структуры). Получается это какой-то религиозный спор. Какая нам разница от нашего восприятия и понимания, есть у этой структуры свое поведение или у нее просто должны быть методы для работы с ее данными, если логическая работа с этими структурами данных та же? В таком случае, следуя такой парадигме, если мы считаем, что у нас не живая структура для которой просто нужны методы чтобы что-то посчитать, то неправильно имплементировать методы для этой структуры. Нужно придумать и создать класс, "живой" сущности которая умеет что-то делать, у которого есть методы для работы с данными из этой структуры. Тогда это будет следовать той логике, что у анемичной структуры нет и не может быть своего поведения. А тут получается что мы просто меняем синтаксис для описания одного и того же в зависимости от нашего ментального понимания объекта (живой он или не живой). Ну бред же =) Или поправьте меня пожалуйста, если я неправильно, что-то понял. Я лично вижу это так: или всегда использовать только классы, или всегда только структуры, или использовать классы для структур с методами, а структуры использовать только для описания структур данных и не имплементировать методы. Или хотя бы не смешивать в одной программе ООП подход и имплементацию методов для анемичных моделей.
@TimurShemsedinov
@TimurShemsedinov 2 жыл бұрын
Вот тут я не понял. Но отвечу: нужно почитать код Метархии, например. И да, нет одного единственно правильного способа, есть разные подходы.
@Varkatel
@Varkatel 4 жыл бұрын
в паскале в нулевом байте строки её длина
@TimurShemsedinov
@TimurShemsedinov 4 жыл бұрын
Да, паскаль подзабыл, сори
Random Emoji Beatbox Challenge #beatbox #tiktok
00:47
BeatboxJCOP
Рет қаралды 54 МЛН
This dad wins Halloween! 🎃💀
01:00
Justin Flom
Рет қаралды 63 МЛН
Human vs Jet Engine
00:19
MrBeast
Рет қаралды 189 МЛН
CUDA: Podstawowy wzorzec mapy, wywołanie i transfery danych
49:36
Tomasz Jasiukiewicz
Рет қаралды 132
Антипаттерны общие для всех парадигм
1:30:31
Перечислимый тип (enum) в JavaScript и TypeScript
44:23
Timur Shemsedinov
Рет қаралды 5 М.
🎧 Have Objects Failed? Или что не так с ООП?
1:14:04
Timur Shemsedinov
Рет қаралды 9 М.
C# Data structures: Class vs. Struct vs. Record
6:10
tutorialsEU - C#
Рет қаралды 17 М.