Как стать автором
Обновить
2
0

Пользователь

Отправить сообщение

Компилятор - одна из разновидностей транслятора.
Транспайлер(транспилятор) - одна из разновидностей компилятора.
Так что всё верно.

p-адические числа зависят от системы счисления
И имеют разные свойства в зависимости от системы счисления
Например в поле 10-адических чисел существует n не равное единице и нулю, для которого n^2=n

И при этом p-адические числа имеют реальное(математическое) применение, например в решении Диофантовых уравнений, и доказательстве теоремы Ферма

Можно конечно где-то провести условную границу между "настоящей" и "искусственной" математикой, но всегда найдется кто-то, кто подвинет эту границу, как например было с нулём, отрицательными числами, мнимыми числами...

$0 - текущий выбранный в инспекторе элемент
$1 - $4 - предыдущие выбранные элементы

Так вроде же выражения x = x && y и x && (x = y) тождественны друг другу
Второе конечно мене очевидно выглядит, но по функциональности разницы не вижу
const maxId = Math.max(...this.Structure.map(o => o._id)) || 0

Если будет слишком много элементов, случится Maximum call stack size exceeded
reduce будет понадежнее, хотя и медленнее
Но у вас уже используется map, и с учетом этого reduce будет уже быстрее чем map+rest arguments

var arr = Array.from(Array(100000), () => ({_id: Math.round(Math.random() * 10000)}));
console.time('reduce');// 1180ms
for(var i = 0; i < 1000; i++)
    arr.reduce((a,{_id}) => (a > _id ? a : _id), -Infinity)
console.timeEnd('reduce');
console.time('rest args');// 1748ms
for(var i = 0; i < 1000; i++)
    Math.max(...arr.map(x => x._id))
console.timeEnd('rest args');


Также || 0 выглядит как ненужная перестраховка
Если элементов не будет, то вы получите -Infinity, и этот код не поможет
В остальных случая _id вроде всегда число, а значит мы и так получим максимальный _id
По цифрам ничего не скажу — не было даже мысли проверять.
Можете сами проверить, если вам интересно.
Но навскидку я бы не поставил на успех if-а в этом «соревновании».

А вообще преждевременная оптимизация — зло.
Преждевременная микро-оптимизация базовых инструкций, в ущерб поддерживаемости кода — двойное зло.

В моих аргументах выше, производительность пожалуй стоит поставить на второе место по-важности.
Более того наверняка есть контексты, где lodash.get будет уместнее в плане читаемости и поддержки кода.
Но это уже не совсем типовые случаи.
Чтобы больше нельзя было использовать типизацию, и рефакторинг?
Или чтобы дополнительно замедлить код вызовами функции?
Пострадает производительность и типизация
К тому же речь о том, чтобы указывать вопрос для опциональных свойств, а значит замена не один-в-один
Да, я ошибся насчет второго примера.
Он дергает return() непосредственно перед тем как упасть
И странно, что цикл асинхронной итерации не поступает похожим образом при собственном падении(а не в теле цикла)

Чуть подробнее я описал в комментарии ниже

И теперь я тоже не понимаю что происходит, и нахожу поведение в 4-ом примере непонятным
Да, я ошибся насчет 2-ого примера
Цикл все-таки падает(в теле цикла)
Но, перед тем как упасть, дождавшись промис, сперва дергает .return, и потом уже падает

В таком случае выглядит странно, что for..await не делает также, когда упал именно при обработке IteratorResult
Но при этом, при падении в теле цикла, он также как и цикл синхронной итерации, дергает return()
По-моему в последнем примере все логично
1) цикл начинает первую итерацию.
Запросил iterator.next()
Получил Promise.resolve(42), дождался его резолва
Вызвал тело цикла, и вывел в консоль
2) цикл начинает вторую итерацию
Запросил iterator.next()
Генератор внутри себя дошел до yield Promise.reject(43), и вернул его
Идти дальше, пока не был вызван новый(3-ий по счету) .next() — он не имеет права
Цикл получил Promise.reject(43) в качестве нового значения
Цикл дождался, и успешно бросил исключение

В итоге цикл закончился преждевременно, не вызвав .next в последний раз.
А значит генератор никогда не доберётся до своего finally

Вот если бы падение было в самом генераторе(3-ий пример) — то finally выполнился бы
И если бы цикл не упал, и запросил бы next() в третий раз(2-ой пример) — то finally также выполнился бы(как и любой другой код)
Я только за совместное развитие, понимаю его, и одобряю

Просто уточняю факты для изначального комментатора — не все синтаксические элементы в TypeScript были придуманы командой TypeScript, а скорее являются реализацией и обкаткой существующих черновиков ES.
Причем часто на поздних этапах, в то время как babel начинает обкатку со stage0

Например Optional chaining был взят из stage3 — github.com/microsoft/TypeScript/issues/16
А Nullish coalescing обсуждался со stage1, а имплементирован похоже на момент stage3 — github.com/microsoft/TypeScript/issues/26578
Курица или яйцо?
Не могу сказать за все фичи, но часть из них(всех фич, а не конкретно ES2020) появилась сперва в черновиках ES, и только потом, с определенного уровня были поддержаны в TypeScript
Тут есть что-то про измерение количества процессорных инструкций
habr.com/ru/company/ruvds/blog/479266
К пунктам про gitconfig хочется добавить, что все-таки можно переиспользовать конфиг между разработчиками
Для этого нужно положить конфиг-файл(с актуальными для проекта настройками) в репозиторий
И потом после клонирования, подключить его командой
git config --local include.path "../.gitconfig"

Теперь достаточно только одной команды, вместо отдельных, для каждой настройки
Кроме того, если понадобится добавить еще одну настройку, достаточно будет закомитить ее в этот файл, а не рассылать уведомления с просьбой выполнить очередную команду всем участникам разработки
Спасибо за ответ.
Я правильно понимаю что этап валидации домена через файл все равно нужно выполнить?

Я хочу сгенерировать сертификат для локальной сети — 192-168-0-100.sslip.io
Я так понимаю ни LetsEncrypt, ни какой-либо другой центр сертификации не выдаст мне сертификат для домена, который по-факту резолвится в локальную сеть?

т.е. для данного случая нужен свой реальный базовый домен, и wildcard сертификат для него?
Спасибо.
Очень предусмотрительный подход — возьму на вооружение
Спасибо

Эта часть у меня не вызывает вопросов:
ясное указание выхода должно быть на той же строке, что и последняя скобка


Мой вопрос именно про код последнего выхода — $?
Почему нельзя писать так, без явного указания кода?
(
…
); exit;

Судя по документации команды exit — она и так возьмет код последней команды, если его специально не указывать
Является ли важным явно указать его, или это вопрос только читаемости?
Кроме фигурных скобочек, у вас был в конце exit?
Важно, чтобы он был в той же строке, что и закрывающая фигурная скобка, после точки с запятой

Информация

В рейтинге
5 059-й
Зарегистрирован
Активность