Предварительные условия контракта в конструкторе с пустым телом

Как Демолишун упоминает в ответе на закрытый дублирующий вопрос, существует ветка , в которой говорится об этой проблеме. Поток создан в августе 2009 года, и один из разработчиков говорит , что код отладки был оставлен случайно . Я установил Pygame 1.9.1 из pip, и выходные данные отладки все еще присутствуют.

Чтобы обойти это сейчас, я скачал исходник с pygame.org, удалил операторы печати из src / joystick.c и скомпилировал код.

Я нахожусь на OS X 10.7.5 для того, что это стоит.

191
задан adiga 15 November 2019 в 09:22
поделиться

1 ответ

Так как вопрос состоит в том, почему, это имеет отношение, как JS был разработан.

существует 2 главных причины, о которых я могу думать для объяснения этого поведения:

  • Производительность: Учитывая x = 10000 и new Array(x) мудро для конструктора избежать цикличного выполнения от 0 до 10 000 для заполнения массива undefined значения.

  • Неявно "неопределенный": Дайте a = [undefined, undefined] и b = new Array(2), a[1] и b[1] и возвратится undefined, но a[8] и b[8] также возвратится undefined, даже если они будут вне диапазона.

В конечном счете, нотация empty x 3 является ярлыком, чтобы не устанавливать и отображать длинный список undefined значения, которые являются undefined так или иначе, потому что они не объявляются явно.

Примечание: Учитывая массив a = [0] и a[9] = 9, console.log(a) возвратится (10) [0, empty x 8, 9], заполняя разрыв автоматически путем возврата различия между двумя значениями, объявленными явно.

0
ответ дан 23 November 2019 в 05:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: