Почему разработчики ColdFusion решали индексировать массивы от 1, а не 0?

Решение моей проблемы было двояким.

Первым делом я поместил loading percent в цикл for, чтобы он выполнял намерение только после завершения каждого элемента в массиве. во-вторых, я поместил все свои переменные в цикл for вместо того, чтобы создавать их на уровне класса. это гарантировало, что все переменные были правильно установлены в datasnapshot, и что приложение не переходило к следующему действию без полного завершения цикла for.

11
задан Shawn Holmes 13 January 2012 в 19:22
поделиться

8 ответов

@Cory: Вы были бы удивлены знать кто, скрываясь на StackOverflow.:-)

Вы в значительной степени правы. Первоначальный проект CFML должен был позволить непрограммистам создавать сложные веб-приложения. ColdFusion\CFML был первым языком, специально разработанным для создания веб-приложений. Назад в 1995 сетью был главным образом статический HTML, и Ваш типичный 'веб-разработчик' не делал слишком большого программирования. Сам язык был разработан, чтобы быть максимально простым, который является, почему это - все еще один из самых быстрых/самых легких языков для изучения.

Это может привести к небольшому количеству беспорядка, особенно когда код ColdFusion взаимодействует непосредственно с Java или.NET. Однако это только что стало одной из тех 'причуд'. Решение было пересмотрено назад в 2000/2001, когда CF был восстановлен как JAVA EE-приложение, но обратная совместимость предотвратила изменение.

24
ответ дан 3 December 2019 в 00:45
поделиться

Существует две конвенции, одно общее для большинства языков программирования, и одно общее для большинства непрограммистов. Они, вероятно, стремились к людям, которые не начинают рассчитывать с 0.

10
ответ дан 3 December 2019 в 00:45
поделиться

Если я должен был предположить, это - потому что ColdFusion был нацелен для обращений к новичку, и массивы на основе 1 могли бы иметь больше смысла - первый объект является номером 1, второй номер 2 и т.д.

Это - мы программисты, которые являются странными!

9
ответ дан 3 December 2019 в 00:45
поделиться

Ну, если у нас нет ни одного из исходных разработчиков, будет трудным сделать, почти размышляют. Но использовавший CF в предыдущей жизни, у меня есть некоторые идеи.

При рассмотрении языка оригинала он был разработан для разработки типа RAD для людей, которые хотели создать динамические приложения без большой сложности. Я все еще помню радость, когда они наконец выпустили Пользовательские Функции, таким образом, я не должен был использовать теги везде.

На основе этого затем это имело бы смысл, что аспекты людей языка должны были иметь дело с - такие как массивы - они сделают более "дружественным". Мне, видя массив [0] имеет смысл. Но людям, плохо знакомым с парадигмой, кто не узнал, что, она не имела бы никакого смысла. Почему я получил бы доступ к объекту в положении "0"?

Забавная вещь состоит в том, что теперь, когда CF является Java в бэкенде, на самом деле необходимо иметь дело со случаями, где индекс запускается в 1, и случаи, где он запускается в 0. Таким образом путем попытки быть полезными, они на самом деле добавили в большей сложности, поскольку язык вырос.

6
ответ дан 3 December 2019 в 00:45
поделиться

Даже в мире программирования API Java существует интересное исключение подсчет на основе 0: API JDBC. Это начинает рассчитывать с 1, очень к удивлению каждого программиста, делающего ее первый доступ к базе данных.

0
ответ дан 3 December 2019 в 00:45
поделиться

Понятие запуска массивов в 0 было популяризировано с языком C. Более старые языки, такие как ФОРТРАН и КОБОЛ начали считать массивы в 1 (на самом деле названные Таблицы в КОБОЛе).

3
ответ дан 3 December 2019 в 00:45
поделиться

Считайте количество пальцев, которые Вы имеете с одной стороны. Вы начинали рассчитывать с 0 или с 1?

Абстрактные идеи, что тесно параллельная реальная жизнь является всегда более понятной и прикладной (исключая: думайте о физическом "стеке" и затем структуры абстрактных данных).

5
ответ дан 3 December 2019 в 00:45
поделиться

Нет никакой конвенции по начальной точке массива. Большинство Основ запускается в 1 также, например. Некоторые языки позволяют Вам запустить массив везде, где Вам нравится, или индексы allowarray, чтобы быть перечислениями и т.д. (Ada, например). C использовал понятие жала в 0, и много языков следовали, но не все делают. Одна причина, почему они не делают, состоит в том, что массивы, запускающиеся в 1, намного более интуитивны.

2
ответ дан 3 December 2019 в 00:45
поделиться
Другие вопросы по тегам:

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