Правильные основы программирования. Переменные
HTML-код
- Опубликовано: 12 сен 2024
- Скачайте Emcee для iOS из GitHub или из Docker Hub - для Android: emceetool.io/?...
Или регистрируйтесь в Emcee Cloud: emcee.cloud/?u...
Рассказываю зачем на самом деле нужны переменные в программирование и какие у них есть подводные камни. Раскрываю все их тайные механики и учу правильно распоряжаться новыми знаниями. Увеличь своё мастерство владения переменными за 7 минут и пойми самые глубокие истинные основные основы программирования.
---
Подпишись на наш Telegram Канал 🖤 t.me/extremecode
Лицензия Creative Commons Attribution 4.0 на использование трека Hyperfun (исполнитель: Kevin MacLeod): creativecommon...
Источник: incompetech.com...
Исполнитель: incompetech.com/
Братан, хорош, давай подпишись на наш Telegram канал, мы там байки и кулстори травим
🖤 t.me/extremecode
А для бустеров у нас есть эксклюзивный контент: boosty.to/extremecode
Братан, хорош, давай, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик!
да ладно, если нет памяти, но вернёт нулевой указатель. Хотя я тут про С/С++ и оператор new или функцию выделения памяти под объект. Хотя может произойти исключение и это надо это как-то обработать.
С древних времён и до сих пор в подпрограммах переменные простых типов хранятся на стеке и они самоуничтожаются при выходе из подпрограммы без участия сборщика мусора и без усилий погромиста.
@@IgorYegorkin не то чтобы самоуничтожаются, просто ни кто не заботится об их дальнейшей сохранности )
Есть масса стандартных способов уровня предотвратить одновременную запись в переменную, вроде мютексов, дворецкого, файфы и всякое такое...
Ставь лайк, если учился программированию исключительно по видосам экстримцоде и теперь работаешь охранником в пятерочке 👍
учился исключительно по их роликам, но нормально вкатился в разработку
@@jarre941 соболезную
@@jarre941 Охранники так хорошо сишарпу учат?
Я слесарь со "знанием" C#.
@@meme-potentialsearch8010 не знаю, но вроде они ничего не делают, так что почему нет? Работать удаленно параллельно работая охранником в пятерочке?
Жаль раньше не было такого контента, пришлось все учить через спецификацию
Мурыч одобряет
Спецификация херня, лучше познакомится с разработчиком языка и узнавать все напрямую от него.
@@maratmkhitaryan9723 мы так тестеров подставляем на работе
@@maratmkhitaryan9723 Разработчиком ассемблера?
@@maratmkhitaryan9723написать юнит тесты на каждую функцию, сделать дебаг каждой строчки, написать свой транслятор языка в cpp
Мурыч в кровати перевернулся
Шо за Мурыч ?
@@niktaylor5065Demi Murych - легенда русскоязысного js
@@user-qe9kw5cp3d Мурыч украинец
Но он хотя бы спецификацию читал
И проборматал что то про мистера промиса и ретроградного ретюрна.
Минуточку, видео сделано по СПЕЦИФИКАЦИИ?
Видео на канале стали выходить чаще, и это не может не радовать. Даже рекламу перестал перематывать в благодарность за это.
Как и просил: Братан, хорош, давай, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого вот почаще?
если воспринимать переменные как "место где хранятся данные" - то будет много сюрпризов.
По сути так и есть
Либо данные, либо ссылка на объект
Хорошо бы теперь получить полный гайд на функции.
на методы, он же не функциональщик)
@@bbbbbbb61 нууу не только в функциональных языках есть функции.Это в ООП методы. Методами принято называть только функции, которые в классах
А в некоторых языках есть ... ... процедуры!!!
@@bbbbbbb61, функция это подпрограмма, а метод это функция, принадлежащая классу или его экземпляру.
Функция:
foo(args);
Метод
object.foo(args);
@@qubi8592А зачем ты это написал?
Процедура не возвращает значений в отличии от функций и методов
Ага. И поэтому придумали указатели чтоб менять значение переменной из любой жопы, а не просто копировать в эту жопу значение это самой переменной.
И теперь любой умник вставляет указатель в любую жопу не задумываясь как оно будет работать с другими жопами. Благо умные люди придумали Большую Жопу под названием операционная система, чтобы жопы поменьше не тянули свои грязные лапки к сокровенным данным, а если и потянут, то большая жопа с разворота выдаёт жопе поменьше хлёский Segmentatin Fault.
Самое точное объяснение
Ну как то не исчерпывающе, во первых аналогию с математикой проводят не для того чтобы поставить знак равно, а для того чтобы объяснить человеку общую концепцию, ибо все учились в школе и сразу поймут о чем идет речь. И второе, про управление памятью, так как переменная и её циклы жизни понятия неразрывные нужно было бы рассказать о том как именно эти механизмы работают и как ими пользоваться
Братан, хорош, давай, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого вот почаще?
Братан, хорош, давай, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого вот почаще?
Братан, хорош, давай, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого вот почаще?@@ДокторМёбиус-з2е
Братан, хорош, давай, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого вот почаще?
Я знал, что кто-то додумается это написать
Это пишут уже годами и стало копипастой@@nixarion
Спасибо, очень полезный материал, жалко, что такого видео раньше не было и мне пришлось узнавать все по кусочкам и самостоятельно. Завидую тем, кто все узнал отсюда.
полезными были только первые видосы канала, сейчас одна вода и нахуй этот видос не сдался. Соболезную тем кто тут что-то полезное увидел
@@arseniyrulinskiy2581 ирония и как ее понимать
Так он ботов подрядил комменты писать и подписчики тоже боты. Ничего удивительного.
@@arseniyrulinskiy2581согласен, полная хуета
@@ShardsOfArmor на пайтоне их писал?
Просто обязан был это сделать - "Братан, хорош, давай, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого вот почаще?""
Братан, хорош, давай, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого вот почаще? Давайте пока!
Hey, buddy, great job, keep it up! The content is awesome, can we have more of it? You're really doing great! Is it possible to have more of this more often?😎👍❤
Тема раскрыта, в основном, для высокоуровневых языков с управляемой памятью. В языках на подобие Си и С++ всё несколько иначе:
1. Переменная может располагаться не только в куче, на стеке или в статической памяти. Тогда у неё совсем другой жизненный цикл и другая логика освобождения памяти.
2. В языках с неуправляемой памятью, где доступна арифметика указателей, возможно создание алиасов. То есть разных переменных, которые физически хранятся в одном участке памяти. Самое забавное, что алиасы могут быть даже разного типа данных. То есть один и тот же набор байтов будет интерпретироваться по разному, в зависимости от того, через какую переменную Вы к нему обратитесь.
3. Не раскрыта тема умных указателей в языках с неуправляемой памятью.
ПС: Рекомендую автору собрать замечания к видео и выпустить новый видос, который будет раскрывать тему переменных, в основном, в более низкоуровневых языках.
Истинно так. Все зависит от языка, компилятора и даже используемого диалекта и аппаратной платформы. В некоторых случаях, переменная вообще может не попасть в память, если оптимизатор компилятора найдет такую последовательность инструкций когда значение уместится в регистрах процессора во всем том участке кода где она(переменная) задействована. В большинстве же истинно компилируемых(в код физической платформы) языков высокого уровня без сборки мусора - переменные можно разделить на несколько больших классов: глобальные статические(память под них выделяется сразу в виде сегмента данных), динамические(выделение и освобождение памяти происходит явным или неявным образом через вызовы к менеджеру памяти(системному, или встроенному в RTL языка(который обычно реализует некую стандартную обертку над системными механизмами конкретной платформы)) и локальные переменные которые на большинстве платформ сохраняются в стеке, и а так как при выходе из процедуры или функции стек очищается - память освобождается сразу при выходе. Поэтому нельзя передавать указатели на такие локальные переменные "наружу" в большинстве языков. Если же возвращается значение хранимое в локальной переменной - оно как правило копируется в соответствии с принятым в языке механизмом соглашений о передаче и возврате параметров. Всякие там stdcall, syscall, cdecl, register и множество иных модификаторов.
не шарю как все работает в плюсах так что возможно вопрос конченный, но разве создание алиасов невозможно, например, в джаваскрипте? условно const a = { val: "val" }; const b = a; создаст два указателя на один объект { val: "val" }, то же самое работает при передаче параметром в функцию, и, насколько я понимаю, все то же самое верно для примитивных типов
@@sxda-vadas4903, это если объект. На примитив, например, так нельзя. А всё из-за того, что в Java нельзя произвольно манипулировать указателями. А в Си и С++ можно сделать именно алиас переменной. Пофигу что в ней: объект, примитив, массив.
@@sxda-vadas4903 , т.е. в Си Вы можете сделать массив из 4-х байт, который является алиасом переменной типа int.
когда чел пришел глянуть обзор на переменную, а ему кидают в лицо специфичную для плюсов информацию. Вот же здорово. Это же так позитивно влияет на размер ролика, а также на понятность и полезность (не только лишь все пишут на плюсах) информации.
Контент в кайф! Можно побольше всего такого?)
Братан, хорош, давай, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого вот почаще?
Братан, хорош, давай, давай, вперед! Контент в кайф, можно еще? Вообще красавчик!
Братан, хорош, давай, давай, вперёд! Контент в кайф, можно ещё? Воопбще красавчик!
Можно вот этого вот почаще?
На самом деле не все так просто с этими переменными:
они могут быть выделены на стеке, на хипе, в регистре, в DMA, в сегменте кода, данных; а если еще взглянуть на Гарвардскую архитектуру там еще веселее.
То, что вы напишете в вашем js буть то: var, let, const (или что там есть) никогда не угадаете где в итоге окажется ваша переменная.
Я окончил сыщинский институт по кафедре "Розыск переменных" и скажу вам, что эти маленькие пляди очень хитрые, хорошо шифруются и на допросах не разу не расколись, где их блэкхата. Знайте, если вы заводите себе переменную её надо контролировать и обучать, как собаку, чтобы она исполняла все ваши приказы, тогда ваша работа будет лёгкой и тим лид вам будет целовать ноги в благодарность.
Так автор это же и сказал на 4:02
Для компиляторов переменная это лишь значение в области памяти а её тип лишь объясняет как строить обращение с этой областью памяти в скомпилированной программе
Братан, хорош, давай-давай вперед, контент в кайф, можно ещё, вообще красавчик!
Братан, хорош, давай, давай вперед! Контент в кайф, можно ещё? Воообще красавчик! Можно вот этого вот почаще?
До чего мы докатились.....
Гайды по пременным
Помню с товарищем сравнивали как в разных компиляторах на C++ разных версий в дизассемблере выглядит код простого цикла со счётчиком. Вот в более старых компиляторах переменные, объявленные для счётчика попадают в оперативную память, а в более новых и современных компиляторах - в аппаратный стэк процессора. Не знаю, насчёт "записи в ПЗУ", но как немного знакомый с ACPI кодингом и видевший в глаза функцию Store, то на более машинном уровне действительно нет проблем размещать переменные в разных аппаратных устройствах, позволяющие это делать на уровне прошивки и уровня операционной системы. Просто адрес должен попадать адресное пространство будет в область конкретного девайса, куда эта память размещается и учитывать, что на аппаратном уровне есть свои фишки, вроде рандомизации размещения, свои особые карты памяти. В целом, чтобы узнать, где будет размещена та или иная переменная раньше других это в идеале бы изучать ACPI и его изменения в новых чипсетах, а потом искать в бэклоге какого-нибудь компилятора, когда они добавят возможность размещать переменную, кодируя её в частоту вращения корпусных вентиляторов или цветов вашей RGB-подсветки. Ну или хотя бы просто в NVRAM.
> для счётчика попадают в оперативную память, а в более новых и современных компиляторах - в стек
Как будто стек это не оперативная память)
Простите, а где тогда хранится стек?
Ты наверное имел ввиду хип, когда говорил про "оперативную память" но я в этом сильно сомневаюсь (по крайней мере для простого цикла), На arm архитектуре, кстати, компилятор любит счетчик в регистрах проца хранить (там их просто больше чем на x86, amd64).
(Добавлено) Хотя если компилятор для каких нибудь embedded девайсов типа ардуинки то поверю, там прямая адресация памяти и нет затраты на аллокации хипа.
Я уточнил. Я имел ввиду аппаратный стэк процессора, чтоб понятно было.
ACPI тут при чем? Это же просто режимы сна компа
Братан хорош, контент и кайф давай давай ещё 🎉
И всё же переменные в математике и программировании - одно и то же. Если идти по пунктам автора, то 1) ссылаемость переменной в программировании - не её суть, а необходимое условие существования, так что аргумент несостоятелен; 2) переменные не являются частью формулы или уравнения, но всё равно является частью какой-то функции. Но даже при этом использование переменной не обязательно ни в математике, ни в программировании; 3) как в коде переменную можно назвать одной латинской буквой, так и в математике никто не запрещает использовать для именования слово. К примеру многие в рассчётах используют "КПД" вместо ню. Ну а если идти не по пунктам автора, а по сути такого явления как переменные, то и математика, и программирование являются лишь частным случаем их реализации и использования.
Что значит переменные в программировании не являются частью формул? Если одна переменная участвует в вычислении отчества хейтеров этого канала, а другая - в сравнении оного с паспортным значением, то это такие же формулы как и волновая функция Шредингера. Разница скорее в стандарте записи. В программировании формулы обычно записываются с целью оптимизации времени выполнения, а «алфавит» строго ограничен операциями, доступными процессору. В математике формула подчиняется принципам необходимости и достаточности, а также универсальности (математическая формула должна быть максимально удобна для математических преобразований совместно с другими формулами), а алфавит обычно подстраивается. Если формально, то логика первого порядка (на которой строится и вся математика) полна по Тьюрингу. Более того, сама машина Тьюринга является математической моделью. Потому можно сказать что переменная в программировании является частным случаем переменной в математике
что вообще такое переменная в математике? есть ли пример переменной? это же не программа, где значение чего-то меняется, в математике вроде мы имеем дело только с константами
@@torburgmax переменная - математический объект, который может принимать множество значений в пределах множества возможных значений или области изменения. S=pi*r2 - тут r и S - переменные, pi - константа
@@mamont0207 тут вопрос в том, что при вычислении значения какого-либо параметра, остальные своего значения не меняют. а в программе могут менять. поэтому по факту у нас будет в вашем уравнении одно неизвестное, например, S, а r будет тоже константой при вычислении S. в противном случае мы не вычислим S. поэтому это не переменные. r не меняет своего значения на протяжении вычисления
@@torburgmax формула S=pi*r2 показывает связь между S и r. Для всех S и r. Если у вас есть задача, в которой дано r, то да, в рамках задачи это константа. А если задача представлена неравенством? А если это дифур? В математике есть раздел «численные методы», который занимается численными решениями, они прям оперируют алгоритмами. Условное вычисление интеграла методом трапеций или метод Эйлера - это математика. Тем не менее, они выглядят как алгоритм, и ложатся на программный код аж бегом
@@mamont0207 разница лишь в том, что все переменные в математике представляют собой тип double или decimal. В тоже время переменная может хранить в себе сложные структуры, например объект с целом перечнем свойст, методов и прочих наборов. Да и запросы LINQ например, ты как в обычную переменную засунешь?
Ну так а под копотом то где? Видео - тупо перечисление свойств переменных и то не исчерпывающее... или замечание про то что ячейка памяти может быть выделена и не в операционке и есть "под капотом" ?
Братан, хорош, давай, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик!
Сборщик мусора - это не панацея. Это цирк шапито, где заяц и черепаха бегают по кругу каждый раз. По мимо сборщика и ручного управления памятью есть Reference counting. Он есть в любом уважающем ЯП, и даже в крестах.
Иммутабельность - это красиво, чисто. Но это медленно. Иногда стоит посмотреть что куда пихаешь, и как используеш. Когда протаскиваешь обьекты через кучу красивых и чистых архтектур.
Братан, хорош, давай, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого вот почаще?
норм???
- посмотрите как это работает
- показывает работу create-react-app
Тьюринг в своей машине перевернулся после этого ролика
1:44 начало
Думаю, в теме небезопасности переменных стоило упомянуть функциональщину -- в Haskell переменных нет вообще.
Они там вполне себе есть - просто они начинают быть начиная с многопоточности и межпоточного взаимодейстивя. До момента когда надо шарить состояние между потоками они не нужны.
@@user-gn5jw9sg9nНе писал многопоточный код на хаскель но интересно. Ты про ref'ы? Разве их "мутация" не просто трансформирует монадный контекст где они объявлены? Я думал всё изменение состояния в хаскеле так или иначе просто производит новую копию "мира" в IO
@@user-gn5jw9sg9n шарить состояния между потоками? Они там что курят?
Там есть переменные в математическом смысле, например `f x = x + 1` параметр x является переменной, т.к. связывание этого имени может происходить с разными значениями.
На уровне семантики языка переменных в программистском смысле там действительно нет, однако есть мутабельные ячейки данных вроде MVar, MArray, TVar, IOVar и прочего.
В общем концепция именования там отделена от концепции мутабельной ячейки данных.
Чёто пролог вспомнился
Переменные есть, но из-за предикативности языка - работают они не так, как ожидается интуитивно
Здорова , контент в кайф , давай ещё ещё ! Лабай
Контент в кайф, давай еще
Хорош. Давай вот этого вот почаще
Когда же у него уже запустится react app😢
да да красавчик, давай вот этого почаще
Давай вот этого вот еще! Красавчик! Давай «петухон за 3 минуты»
Контент в кайф, вообще красавчег, спасибо 💯💥👾👽🤖
Братан, хорош! Давай вперёд! Контент в кайф! Можно ещё? Ваще красавчик!
❤вот бы всем такого учителя информатики😂
Переменные нужны не для того, чтобы хранить информацию. Они нужны для именования этой информации. Хранить можно без переменных, что прекрасно делают стековые языки, языки с нотацией Де Брауна и всякие point-free вроде J или APL.
> её утилизирует сборщик мусора
> ... переменную следует уничтожить вручную
как насчёт переменных, аллоцированных на стеке или в регистровой памяти?
> операционная система не сможет выделить память на переменную
кринге. ОС выделяет память разве что под адресное пространство процесса. Аллокация не имеет никакого отношения к ОС. Исключением можно с натяжкой считать примитивы ОС типа мьютексов или выделение буферов в памяти ядра, но чаще всего это нельзя назвать "выделением памяти на переменную".
Одна из важнейших вещей то что память под значение переменной может быть выделена на стеке или на куче. Почему автор про это не упомянул в видео не понятно. При этом было упомянуто про gc
Потому, что при большинстве нынешних средств программирования в принципе похуй где там эти переменные хранятся / уровень абстракции
Ну, в высокоуровневых языках, если память выделяется на куче, считается, что это уже не переменная, а объект. Переменная в качестве значения может хранить только указатель на кучу или в терминологии высокоуровневых языков "ссылку на объект".
А потом пользователи страдают, когда у них простейшие программы "лагают".
@@user-pm4we9lr9qбоюсь, что при таком подходе вашим самым главным средством будет отладчик.
@@maxrusspb да, особенно, в интерпретируемых ЯП
Сколько же ты базы влил мне в мозги спасибо что потратил мое время, красавчик молодец.
Воу, кратко, четко, интересно 👍🏻
2:09 Видео явно делал джун. Программист не работает с информацией, программист создает структуры которые работают с информацией.
Эти структуры - тоже информация, так что программист работает с информацией, шах и мат
По поводу джуна спорить не буду :D
@@user-tk2jy8xr8b
> Эти структуры - тоже информация, так что программист работает с информацией, шах и мат
Эти структуры - больше чем информация, хотя они тоже информационные объекты - это инструкции, команды и их комбинация - архитектура. )
На микроконтроллерах не потому что памяти мало а потому что там как правило flat memory, и никских защищенных режимов
Константы это частный случай переменных.
Если, что для меня стало открытием, что когда кастомный скрипт делаешь в GTM, то гугл таг менеджер работает с переменными только var. let там не прокатит видимо для бОльшей совместимости
6:43 на уровне идеи
Братан хорош, давай почаще
контент в кайф и далее по тексту ))))
Го немного базы, коротко и по делу.
Есть статически и динамические переменные.
Статические они логично неизменны по размеру куски данных, они хранятся в одном блоке памяти.
Динамические данные в процессе работы программы меняют свой размер соответственно куски данных занимают и освобождают память это делает сборщик мусора или очищается в ручную.
Динамические переменные всегда представляют адрес и размер блока данных занимаемый в памяти, если мы хотим изменить размер данных нам придется создать новый блок или удалить старый и создать новый с другим размером это сопровождается затратами на создание новых блоков памяти. Динамической памятью управляет ОС и осуществляется посредством системных вызовов ос.
Я точно помню, что до этого было 2 видео с функциональным контекстом, но что то не могу найти первое... Эффект Манделы?
Братан, хорош, давай, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого вот почаще?
Я всё это знал, но для новичков думаю видос полезный так-что спасибо!
Давай еще, красавчик!
Видео на канале стали выходить чаще, и это не может не радовать.
Братан, хорош, давай-давай вперёд! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого почаще?
Давай пока
братан хорош давай давай , контент в кайф, можно вот этого вот по чаще)
если без шуток то приятно смотреть
Эх, не рассказали про области видимости и создания значения на куче/стеке
Братан, хорош! Контент в кайф!
как насчет мьютексов, локов и кондишинов при работе с переменной в мультисрединге?
опять отличное видео полностью лишенное смысла, спасибо !!!
кайф давай почаще
Занятненько))
Чёт как-то странно... Всегда считал что переменную объявлять вместе со значением не обязательно, значение ей можно присвоить по ходу выполнения кода.
Смысл переменной если по ходу кода/программы она не меняется, может действительно проще подобное объявить константой? (К теме var_copy).
Я не программист, но имхо странно что у программиста вопросы к тому что переменная меняется по мере выполнения кода... Значит так код написан, меняем руки.
Братан давай давай вперед контент вообще кайф давай еще
Не развернуто. Имена переменных в компилируемых языках в машинные кода не существуют. Для типизированных статичных переменных выделяется кусок памяти и ее адрес. Обращение по адресу, название переменной нигде не хранится.
Для динамических переменных память выделяется в куче. Для статичных переменных функции в стеке. И везде это всего лишь адреса, а не названия. Статику невозможно освободить, а вот динамику освобождай сам.
А вот для нетипизированных все намного сложнее. Там не адрес переменной, а адрес функции, которая делает вид, что она переменная и возвращает или изменяет значение. Программист не может определить -- он берет простую переменную или ту, которая обвязана {get; set;}.
Еще все хуже с байт-кодом. Там вообще поднимается виртуальная машина исполнения кода и т.д. И там и названия переменных вполне могут встречаться, т.е. работа не напрямую с памятью, а со структурами.
Интерпретируемые языки -- эти вообще динамическая структура, помесь байт-кода и костылей.
Братан Хорош ваше контент в кайф. можно еще вот это вот по больше
Такое надо в начальной школе показывать, неиронично комплиментарный комментарий
Тема не раскрыта
Итак, сейчас я вам расскажу как работают переменные!
1. Где хранятся переменные? - А хрен его знает)
Контент топ, теперь буду писать через копию. Автор молодец
О, наконец-то голос текста и концовки сошёлся
Ну и если я какой-то текст дочитываю до конца, то никогда не поленюсь поставить лайк и в комменте написать что-то типа: "Братан, хорош, давай, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого вот почаще?"
Именно переменные помогли мне перелопатить конструкторное двигло чей автор явно не знаком с таким словом как свободная камера для редактирования...
Вообще красавчик
Да давай ещё раз
Братан харош, контент в кайф
Молодые люди, минуточку...
Братан, вообще красавчик, и вот это вот всё...
Не понял что ты придумал. Покажи свою иммутабельность на js примере, как это должно выглядеть?
Неужели контент по кодингу, не прошло и сто лет
Вывод, если тебе всё равно на переменные, то это правильно, потому что это не имеет значения и компилятор сам всё порешает
Касаемо var, я пишу на GDScript всегда по возможности с уточнением типа, потому что так проще понять код
только работы на gdscript нету проблема интересный движек годот
Не оптимальней писать скрипты и игровую логику на c# ?
@@crazy-man
Да, тут только самим объединяться и делать игры
@@HelloWorld-ln5cy
В документации написано, что гдскрипт быстрый, по опыту скажу, что медленный он только при работе с большими массивами, которые надо часто обновлять.
Во всём остальном его достаточно для любых 2д игр и даже для 3д игр.
Я лично считаю, что к годоту следует относится как к инструменту и отбросить идею оптимизации, да переключиться исключительно на создание игр или ПО на нём, такое тоже можно, ибо он кроссплатформенный. И уже только после создания игры посмотреть где можно срезать углы, иначе кучу времени потратишь на улучательство того, чего не было смысла делать.
Например, очевидно, что квадродерево на годоте не будет таким же быстрым как и на С++, но его более чем достаточно будет для некой игры на таком вот языке.
@@user-gy8xn4kt7sДругое дело что на мой взгляд gdscript неполноценен по сравнению с C#, и код на C# может быть более выразителен и красив что позволит дольше над ним работать без затруднений.
Спасибо. Молодец!
Шедевр😂😂😂😂😂
Шапка от мира it?
Я наоборот всегда думал, что копирование переменных для каждого участка кода это костыли
Кстати, не понимаю, на каком этапе человеческого развития люди решили, что для достаточного понимания переменных нужно отбрасывать такой пласт важной информации?
Чето думал, что это видео от автора, которому надоели незасчитанные из-за оффсайда голы в футболе
Ща придёт Мурыч и скажет, что ты неправильно понимаешь переменные. А если серьёзно, то закончил ты нескольно внезапно, оставив ощущение недосказанности. Хотя бы стэк и кучу можно было упомянуть, а ещё стоило регистры упомянуть (ты коснулся темы, но мало)
Можно продолжить про иммутабельность и как её понимают особенно JS-ники -- дай дурню х%р стеклянный
Можно упороться в проблемы сишников и безопасную работу с памятью и геморрой -- уязвимости, утечки памяти и прочие радости
Можно наоборот подняться наверх в высокоуровневые языки (JS) -- но тут ты сам знаешь, чем кончится
Отличное добивание и закрепление базы
Не увидел ссылку на спецификацию, поэтому не считается
Дадова! Будет ли видос про асинхронное программирование?