Опаньки. Что-то я невнимательно прочитал (что Герб Сатор неправильно пересказал стандарт – всё-таки маловероятно; на всякий случай надо глянуть оригинал и стандарт).
Это уже требуется расширение типа – из int в Optional<int>. И соптимизирует ли это компилятор – бог весть (и там, где соптимизирует – лучше бы не ждать рантайма, а выдать результат при компиляции). Выглядит, как отказ от принципа zero overhead.
Почему обязательно вырезать? Имеет право поставить на его место код форматирования винчестера: https://habr.com/ru/companies/infopulse/articles/338812/
Как они могут сообщить о проблеме, если все возможные значения — валидны?
Речь же идёт о компиляторе, а не о проверке в рантайме. Так что по факту отсутствия присваивания этой переменной, если такой факт удастся доказать (а вот в C# наоборот: если не удалось доказать, что переменная присваивается – ошибка).
Да я знаю про оптимизации. И понятно, что компилятор теряет возможность проводить оптимизации, полагаясь на то, что программист не будет читать переменную до записи в неё. Т.е. возможный выигрыш в быстродействии потеряли, а от ошибок не избавились.
Довольно странное решение. Я бы понял решение в духе C# – когда на всех путях переменная до чтения гарантированно должна быть присвоена, иначе программа не скомпилируется, но присваисвание ей какого-то неизвестного значения (0xDEADBEEF, что ли?) не выглядит серьёзным улучшением по сравнению с мусором из стека.
Да, иногда чуть мешает, что там бBSD-шные тулзы, а не ставшие стандартом де-факто GNU – какие-то опции командной строки отличаются, приходится править найденные в сети однострочники (или добавлять в поиск слово "MacOS".
Вы впервые слышите, что одно слово обозначает несколько сущностей? В русском языке такого довольно много (хорошо ещё, когда сущности связанные, а не как для слова "коса", к примеру). А в английском вообще чуть ли не любое существительное может использоваться, как глагол. Слово одно, значения разные, хоть и связаны.
Функция Аккермана славна тем, что даёт огромные значения для довольно скромных аргументов и огромную глубину рекурсии, почему удобна для подобных экспериментов.
И, если мне не изменяет память, мемоизация не поможет: пара аргументов в разных вызовах будет разной...
А вот это не помню, поэтому на всякий случай у Хрома после скачивания и установки нужной APK права отзывал :-) Но если вы правы (лично мне было бы спокойнее так) – апдейты из рустора будут весьма утомительны, надо кучу всего подтвердить.
Не обязательно ставить их через рустор, давая ему при этом права устанавливать что угодно на ваш девайс. Можно скачать с сайтов банков. При этом, правда, не будет автообновления этих приложений.
Ok, пусть не за 5 рублей, а за 200 (самое дешёвое, что я нашёл с продажей по 1 штуке – 58р... Заодно узнал, что на ЯМ теперь есть "гранулярность" и минимальный заказ). 10% сбора при покупке одного товара, 1% при покупке 10. Но это, конечно, усложняет поиск. На том же Ali – есть выбор между товарами с платной и бесплатной доставкой, но чаще проще не париться, поставить флажок "бесплатная доставка" и сравнивать между собой цены таких продавцов.
Ага, вначале строки без \0, потом string_view и иммутабельные строки, и вот ты уже пишешь на Хаскеле и используешь ropes :-)
Ну сравниваем два алгоритма с одинаковым O, различаются константой при n. И значение этой константы оказывается контринтуитивным.
Вы просто выросли в те времена, когда под длину строки выделяли целый int, а не byte :-) (Turbo Pascal и более ранние паскали на 8-битных машинках).
Опаньки. Что-то я невнимательно прочитал (что Герб Сатор неправильно пересказал стандарт – всё-таки маловероятно; на всякий случай надо глянуть оригинал и стандарт).
Это уже требуется расширение типа – из int в Optional<int>. И соптимизирует ли это компилятор – бог весть (и там, где соптимизирует – лучше бы не ждать рантайма, а выдать результат при компиляции). Выглядит, как отказ от принципа zero overhead.
Почему обязательно вырезать? Имеет право поставить на его место код форматирования винчестера: https://habr.com/ru/companies/infopulse/articles/338812/
Речь же идёт о компиляторе, а не о проверке в рантайме. Так что по факту отсутствия присваивания этой переменной, если такой факт удастся доказать (а вот в C# наоборот: если не удалось доказать, что переменная присваивается – ошибка).
Глобальным – по стандарту положено. Тут речь про локальные.
Да я знаю про оптимизации. И понятно, что компилятор теряет возможность проводить оптимизации, полагаясь на то, что программист не будет читать переменную до записи в неё. Т.е. возможный выигрыш в быстродействии потеряли, а от ошибок не избавились.
Довольно странное решение. Я бы понял решение в духе C# – когда на всех путях переменная до чтения гарантированно должна быть присвоена, иначе программа не скомпилируется, но присваисвание ей какого-то неизвестного значения (0xDEADBEEF, что ли?) не выглядит серьёзным улучшением по сравнению с мусором из стека.
Нет, достаточно знать Герба Саттера.
Да, иногда чуть мешает, что там бBSD-шные тулзы, а не ставшие стандартом де-факто GNU – какие-то опции командной строки отличаются, приходится править найденные в сети однострочники (или добавлять в поиск слово "MacOS".
Вы впервые слышите, что одно слово обозначает несколько сущностей? В русском языке такого довольно много (хорошо ещё, когда сущности связанные, а не как для слова "коса", к примеру). А в английском вообще чуть ли не любое существительное может использоваться, как глагол. Слово одно, значения разные, хоть и связаны.
Функция Аккермана славна тем, что даёт огромные значения для довольно скромных аргументов и огромную глубину рекурсии, почему удобна для подобных экспериментов.
И, если мне не изменяет память, мемоизация не поможет: пара аргументов в разных вызовах будет разной...
Посмотрите права, возможно, они уже выданы.
А вот это не помню, поэтому на всякий случай у Хрома после скачивания и установки нужной APK права отзывал :-)
Но если вы правы (лично мне было бы спокойнее так) – апдейты из рустора будут весьма утомительны, надо кучу всего подтвердить.
Насколько я помню, вы даёте права на установку рустору, и дальше уже все подтверждения – на его усмотрение.
Да. Правда, это требует выдачи соответствующих прав самому приложению :-)
Не обязательно ставить их через рустор, давая ему при этом права устанавливать что угодно на ваш девайс. Можно скачать с сайтов банков. При этом, правда, не будет автообновления этих приложений.
Ok, пусть не за 5 рублей, а за 200 (самое дешёвое, что я нашёл с продажей по 1 штуке – 58р... Заодно узнал, что на ЯМ теперь есть "гранулярность" и минимальный заказ). 10% сбора при покупке одного товара, 1% при покупке 10.
Но это, конечно, усложняет поиск. На том же Ali – есть выбор между товарами с платной и бесплатной доставкой, но чаще проще не париться, поставить флажок "бесплатная доставка" и сравнивать между собой цены таких продавцов.
Ну вы можете купить один товар за 5р, а можете 20. Ставить цену 25р или 6р?
Другое дело, что вряд ли с введением сервисного сбора какие-то товары подешевеют с 25 до 5 :-)