All streams
Search
Write a publication
Pull to refresh
5
0
Send message

Теперь поменялся фокус: на страницах с комментариями теперь фокус по умолчанию в области "оставить комментарий" и без отдельного клика невозможно листать страницу пробелом (этот пробел считается вводом в это поле - всё скроллится в конец).

Пара странных вещей (FF 88 / Ubuntu):


  • Стрелочка вниз у счётчика новых комментариев идемпотента: второе нажатие не переводит фокус на второй новый комментарий, а оставляет на первом.
  • ctr+click на внутренних ссылках из комментариев открывает ссылку в основной вкладке, а не в новой (как это было в старой версии и как это сделано сегодня со внешними ссылками).
если ничего не поменялось, попытки так сделать не убирают бойлерплейт, а всего лишь его усложняют


Вроде бы, если это нужно делать для фиксированного libb::Trait, то можно собственный Derived написать.
Вот примерно так: doc.rust-lang.org/reference/procedural-macros.html#derive-macros
А зачем?
Система отсчёта, связанная с ним, является инерциальной (а в любой другой инерциальной он движется с постоянной (векторной) скоростью).
Стыки материалов разной жёсткости — это, почти всегда, источник проблем. См., например, опыт первых реактивных авиалайнеров: ru.wikipedia.org/wiki/De_Havilland_Comet.
Циклические ссылки, например, вполне возможны (и не освобождаются никогда).
7+4 это 3 по модулю 8.
Так эпицентр землетрясения находится в толще земли, не на поверхности дна.
Так у более тяжелого парашютиста предельная скорость будет больше.

Предельная скорость — эта та скорость при которой сила сопротивления воздуха (зависящая от скорости и не зависящая от массы) равна силе тяжести (зависящей от массы, но не зависящей от скорости).

Для двух одинаковых шариков (или двух одинаковых парашютов) разной массы вторая сила разная, а значит и предельные скорости разные.
Не столько подушки безопасности, сколько зоны деформации.
Они это понимают на этапе создания const.
Всё, что const можно копировать таким простым образом.
Он всегда копирует элементы (и для этого необходима копируемость того, что вы кладёте при инициализации «тем же самым»).
const — это частный случай того, что можно скопировать (даже если в общем случае контейнер нельзя скопировать: если написать Some(vec!(1,2,3)) оно не скомпилируется на строчке с const).
Так добавление else к условию кардинально замедляет выполнение программы.
На моём железе и с моим gcc (всё собрано с O3) самый простой вариант автора (который первый) работает чуть меньше 35 секунд, а Ваш с continue (и полными строками) — чуть больше 45 секунд, разница больше четверти в пользу авторского простого решения.
Вы проверили скорость, но не проверили ответ…

Ваша реализация решает другую задачу: она не печатает пропущенные числа (а должна).
Да, роды неодушивленных объектов (как и сам вопрос одушивлённости: мертвец против трупа в русском) — это культурное наследие.
Как раз девочка женского рода была бы таким исключением по историческим причинам, если бы была женского рода.
Вот как раз род «девочки» в немецком — очень естественная вещь.
В этом языке (в отличии от русского) суффиксы меняют род.
И любое слово, в котором есть уменьшительно-ласкательный суффикс, — обязательно среднего рода. В этом месте, на удивление, логичное поведение.
Можно какой-нибудь конкретный пример?

Попытка построить годовой отчёт на незаконченном годе — это как раз те гарантии, которые дают правильные типы — завести тип «законченный год», и пытаться привести к этому типу перед попытками посчитать отчёт (и иметь понятную ошибку, если не приведётся).
А какого класса ошибки хочется переключать?
Возможность не вернуть ничего, когда по сигнатуре функции нужно вернуть? Это todo! или unimplemented! в расте поддерживает.
Вызвать функцию, которой нет у типа, который вызывается? Кажется, такое не нужно выключать — это гарантированно упадёт в рантайме.
let foo32 = foo3(); // забыли проверить результат, компилятор выдаст ворнинг (который можно сделать ошибкой)

Только если foo32 нигде дальше не используется.
Если используется — у него будет не ожидаемый тип
(и let foo32: u32 = foo3() просто не скомпилируется).
Все языки общего назначения — тьюринг полные. Поэтому нет ничего удивительного в том, что поток вычисления любого из них можно представить в любом другом (с большей или меньшей точностью).

Вопрос удобства написания кода.
В любом случае, я слабо себе представляю нормальную программу, в которой исключения ловятся и тупо подавляются, без записи в лог или куда-либо еще. Вроде это на первом уроке любого института говорится «Не давите исключения»


По коду на питоне (или джаве) не понятно мы специально пробросили этот эксепшен выше (где он успешно залогировался), а не обработали на этом уровне (где можно было что-то исправить — вернуть дефолтное значение, например). Раст в этом месте более эксплицитный — паники нельзя поймать ни на каком уровне, а исправимые ошибки записываются в типы (и есть три варианта как их обрабатывать — явно передать их выше, обработать на своём уровне или запаниковать=пробросить выше неисправимую ошибку). Чем-то похоже на Checked Exception в Джаве, только работает.

Та же история с todo!(). Написать так проще, чем писать throw NotImplemented (буков меньше).

Information

Rating
Does not participate
Registered
Activity