All streams
Search
Write a publication
Pull to refresh
17
0.1

User

Send message

Scala, Python, Nim, Nemerle, Eiffel.

Первые два вопросов популярности не вызывают надеюсь.

Ох уж этот автокорректор :)

Как сказать, Go не будет первым языком использующим квадратные скобки для обольщений.

Очень хорошо написано !

Хочу мажорной нотки добавить, что таки есть места где тебя и любят и ценят и даже спустя годы и даже когда ты уже не там.

Несколько Кб при условии, что вы собираете на предустановленный .NET Framework.
А вот .NET 6 может быть как и предустановлен так и нет.

Если в публикации не выбирать self-contained, то будет также пару Кб, но потребуется установить заранее .NET.

https://docs.microsoft.com/ru-ru/dotnet/core/deploying/

Очень рекомендую писать возвращаемый тип из функции.

Обожглись на казалось бы простом коде:

function f(a:A,b:B){return a&&b;}

JS и TS конечно дают возвращаемый тип не boolean, а тип объекта a или b.

В итоге, вышло боком, когда подразумевали булевое значение, а получили объект :)

Точно. Помню, что хотели добавить, но всё забывал проверить когда этот момент настанет.

Смотрю, сейчас работает.

Да, в FF это расширения, их с десяток на вкус и цвет.

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

Я например использую Sidebery, который к тому же ещё умеет по адресу открывать нужный контейнер.

На Firefox меня держут:

  1. Вертикальные вкладки

  2. Настройка внешнего вида, скажем убрать горизонтальные вкладки совсем

  3. Контейнеры сайтов без необходимости создавать различные профили или открывать разные окна

  4. Мастер пароль для шифрования логинов

  5. Ночной режим в мобильном приложении

  6. Мобильное приложение умеет скрывать рекламу (привет Chrome)

  7. Синхронизация с шифрованием на клиенте

  8. И другие удобные мелочи :)

Brave, увы, до сих пор не умеет пункты 1-5.

Vivaldi не умеет 3 и его нет на iOS

Chrome умеет только 7, но не умеет синхронизировать историю в таком режиме, только новые посещения.

Microsoft Edge не умеет ничего

Поэтому и нет std::optional<T&>.

Не смогли решить относиться к этому как к обёртке или сделать неотличимым от объекта.

Как оказывается Скотт даже предлагал forwarding reference в статье, но в итоге взял universal reference и усложнил всем жизнь :)

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4164.pdf

Я этот момент не критикую. Статья действительно лбъёмная. ?

Это на случай если кто задастся вопросом что с этим можно сделать.

Кстати, вроде как отказались от термина "универсальная ссылка" и плавильней "forwarding reference", наверное перевести стоит как "передающая ссылка".

Кстати, о применимости const T&&. Если мы требуем именно временный объект.

https://www.walletfox.com/course/cheatsheets_cpp.php

Ну да, так и надо.

А я вот начал литкод лёгкий уровень и благополучно забросил:)

Как же неочевиден.

Можно обновлять реализацию без изменения самого компилятора.

В идеале всё, что можно вынести в макросы в виде библиотек, а компилятор не менять.

В Rust тоже магия компилятора.

macro_rules! format_args {

($fmt:expr) => {{ /* compiler built-in */ }};
($fmt:expr, $($args:tt)*) => {{ /* compiler built-in */ }};
}

https://github.com/rust-lang/rust/blob/master/library/core/src/macros/mod.rs#L842

Rust ещё немного не дорос до полноценных макросов :)
Вот пример макроса printf без магии компилятора: printf

Посмотрите статью, там всё сложно:)

Зависит от того, в какой тип попадает строка с интерполяцией.

Скажем в простом варианте:

string a="x", b = "y";

string c = $"{x}{y}";

Будет просто string.Concat(x,y)

В других вариантах будет посложнее.

Нет.

Это в итоге вызовет WriteLine(string) или WriteLine(FormattableString) или другие варианты.

Во всяком случае не будет того вызова о, котором вы говорите.

А само форматированние строки претерпело уже несколько реинкарнаций: https://habr.com/ru/company/skillfactory/blog/599341/

if (source is VectorRoundButton)

{
VectorRoundButton control = source as VectorRoundButton;

Почему не использовать сопоставление с образцом для упрощения кода: if(source is VextorRoundButton control) ?

Поставьте Roslynator/ReSharper или подолное для автоматической замены.

При работе с концептами лучше использовать std::same_as, чтобы не было неожиданостей.

Для компилятора в случае концептов is_same_v<T, U> и is_same_v<U, T> будут разными атомами, поэтому лучше заранее избежать проблем.

Тема раскрывается у Andrzej-я

Тут зависит от компании. Скажем если вам FAANG то извольте натренироваться решать сложные задачки.

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

Ещё любят некоторые системный дизайн спрашивать.

А вообще здесь на хабре об этом много статей написано.

Information

Rating
3,007-th
Registered
Activity