All streams
Search
Write a publication
Pull to refresh
19
0
Александр @cosmrc

User

Send message

Да, обработка ошибок является довольно сложным аспектом синтаксического разбора. Я не стал писать обработчик, что бы не усложнять код.


Rust содержит макросы file!, line! и column!, которые можно использовать для сохранении информации о вызовах.


Так же лексический анализатор может содержать информации о позиции в исходном коде, что помогает значительно улучшить сообщение об ошибках.

Видимо любители порендерить. С ноутбуком та же история.
Если мы говорим о совместимости, то стоит добавить советы типа «использовать битовый сдвиг вместо умножения»
Сюда же в правило обычно добавляються переменные в `for loop`-ах. От этого горит еще больше.
Зачем может понадобиться находить все переменные функции за раз?
Объявляйте переменные в начале функции.

Всегда страшно горело из-за этого правила. Вы можете обьяснить зачем это делать? В случае если переменная определена в месте первого использования, ее сразу можно инициализировать нужным значением, в случае рефакторинга кода ее тут-же можно удалить, не нужно искать тип переменной если видем присвоение ей значения, и еще много причин.

Даже Google думает не так, как написано:
C++ allows you to declare variables anywhere in a function. We encourage you to declare them in as local a scope as possible, and as close to the first use as possible.


А, извините, неправильно трактовал написаное. Посыпаю голову пеплом. В любом случае фразы:
что передача при слишком большом размере небезопасна

и
Нет никакого способа узнать, что ваше назначение является слишком большим

сомнительны.
Функция есть, но это массивы «статической» длинны, потому однажды выделив память, известен ее размер. Во-вторых, его никак не «передать небезопасно», потому что передать можно только указатель на массив. В-третих, для них заранне известен размер, а не как у автора.
Начал читать про Javascript и Ruby, многое слышал.

Когда дошел до С, начал что-то подозревать.
Массивы переменной длины, как правило, помещаются в стек, а это означает, что передача при слишком большом размере небезопасна

Где автор видел, что массивы переменной длинны помещаются в стек? Как потом менеджить указатель на этот самый стек? (Певый вопрос из многих, который пришел в голову)

Когда дошел до Rust, понял, что половина текста написана в минуты отчаяния. Часть про Rust уж точно.
mut означает исключительный, а не изменчивый (mutable). &Mutex означает изменчивый (mutable), а &mut str — неизменяемый (immutable)

Ни одно из вышеперечисленных предложений не верно.

Изменить файл? Потребуется перекомпилировать всю вашу библиотеку. Кстати — rustc работает медленно.

Исправленно.

Поскольку он статически связывает всё (спасибо, Go, за выпуск этой модной штучки), вы получите тысячи, вероятно, устаревших копий кольца на вашем компьютере.

Не факт, что много «устаревших копий кольца» это плохо (сильно смеюсь). Что переводчик тут имел в виду, так и не понял. Наверное много статически слинкованных библиотек, которые уже обновились?

Нет пространства имён в поставке.

В какой поставке? Есть пространства имен. В Rust они называются modules и crates.

Поскольку в поставке нет никаких попыток кэширования артефактов компилятора, то вы компилируете каждую раздутую библиотеку каждый раз, когда создаёте новый проект. Я уже говорил, что rustc работает медленно?

Сейчас так ведуть себя многие менеджеры пакетов. Однако «если создавать проекты», они не имееют никаких зависимостей, поэтому для них ничего не надо компилировать.

Про многие мелкие недочеты уже промолчую
Но если вы хотите работать в индустрии, знать его нужно, так как альтернативы ему не предвидится.

Почему не предвидится? Например Rust. Очень лаконичный и выразительный, а главное быстрорастущий язык. Вполне вероятно, что в недалеком будущем сможет составить конкуренция C++.
Не то, что бы я думал, что мое мнение интересует издательство, но я бы на вашем месте сделал это побыстрее. Так как я почти отказался от покупки, возмутившись тем, что нужно отдельно покупать разные форматы.
У вас или на сайте, или в рассылке книги ошибка. Если при покупке выбрать .epub и .pdf галочки, то в корзину добавляется 2 товара. Но если купить только .epub, в архиве приходит книга в обоих форматах.
«В 3 раза» по сравнению с каким оценками? Интересно было бы, если бы кто-то посчитал сколько таких планет в Млечном Пути.
Дело в том, что в функциональных языках функция является самодостаточным объектом. Ее можно передавать, возвращать и частично пприменять. Поэтому запись с точкой после ее первого аргумента — немного некорректна. Разве что язык должен быть мультипарадигменным.

Например в Скале пошли еще дальше — поубирали точки, и теперь можно писать

names mkString ","

вместо

names.mkString(",")

Но многие предпочитают такую запись не использовать.
Потом останется изобрести алгоритмы, данные которых всегда влезают в кеш. И функциональные структуры данных, которые не persistent, потому что их быстродействие пока многих не радует. А так то да, потом точно )
Действительно если есть «обратная» нотация, то почему-бы не быть обычной.
Точно, есть и такая. Я знал только про обратную. Сейчас исправлю, спасибо.
Да, статьи действительно очень похожие. Но я честно статью с яваскриптом не видел.
NeoCode, многие принципы используются в функциональных языках программирования. Это примерно как с теорией категорий: сам раздел математики очень сложный, но монады и моноиды всплывают то тут, то там.
2

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity