Обновить

Комментарии 8

Любая программа на Go состоит из пакетов (модулей, package)

Учебник, который я сейчас читаю, другого мнения о терминологии

Статья хороша и информативна. Плюсанул. Даже несмотря на то, что автор живёт в какой-то другой реальности в которой TS стал фактически стандартом веб-разработки.

Классная статья, интересно читать про сравнение своего и незнакомого языка (я TS fullstack разработчик). Теперь я ещё больше ценю TS, спасибо

Спасибо. Жду продолжения. Читается легко, глядишь так и в GO вкачусь )

К слову в JS когда переменной присваивается какое-то примитивное значение, на самом деле переменная получает указатель на это значение. Две переменные инициализированные одинаковым примитивным значением (строка, число, булевое значение и тд) такие переменные получают указатель на одно и то же значение. Значение одно, и два указателя на него. Такую ментальную модель Дэн Абрамов называет правильной в своём курсе JavaScript Universe.

Это в принципе можно проверить создав строковую переменную размером в 1024 символа и передав её в качестве аргумента в функцию. Если бы данные передавались по значению, то данные строки были бы скопированы и таким образом объем занимаемой памяти текущим процессом должен был бы увеличиться минимум на 1 мб, но этого не происходит.

А в V8 строки получаемые с помощью метода slice и кажется конкатенации тоже вообще представляют из себя специфические структуры. По сути эти структуры содержат ссылку исходную строку с данными о том какой участок этой строки нужно взять.

Так что можно сказать, что в JS всё передаётся по ссылке )

Ой простите, ошибся, но думаю вы мысль уловили, что нам нужно создать строку которая бы занимала 1 Мб, то есть 1024 * 1024 = 1048576 символа.

Только начал вкатываться в Go как JS разраб и тут эта статья )

Собрат

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Информация

Сайт
timeweb.cloud
Дата регистрации
Дата основания
Численность
201–500 человек
Местоположение
Россия
Представитель
Timeweb Cloud