Страницы

Поиск по вопросам

пятница, 20 декабря 2019 г.

Почему в методе main() аргумент массива строк традиционно называется “args”?

#java #c #массивы #jvm #main


Почему в методе main в языке C в роле аргументов принимаются argc и argv, а в Java
- args? Как расшифровывается эта короткая форма или почему она именно такая?
    


Ответы

Ответ 1



В C аргументы назывались argc и argv как сокращения от: argument count и argument vector. Да да, именно vector. Вас может это удивить, потому что векторы в C еще не существовали, когда C придумывался, однако этому есть объяснение. Все дело в том, что когда K&R придумывали C были уже другие языки, такие известные, как Algol 68, так вот там уже использовали термин vector: bits - a "packed vector" of bool. bytes - a "packed vector" of char. Потому что раньше одномерный массив и вектор у математиков были синонимами, а программисты тогда были в основном математиками. Поэтому суффикс v прижился как vector в именах переменных. K&R просто сделали так, потому что это уже было в других языках. Оригинальный ответ Теперь вернемся к Java. Мы знаем, что когда создавалась Java, то на рынке программистов большинство знало C/C++, поэтому чтобы сделать переход к Java тех программистов, которые уже писали на C, более легким, в Java изначально было сделано много языковых конструкций, которые были похожи на C. Много соглашений о коде были похожи на C. Как мне кажется, это в той или иной мере коснулось и имени параметра args. Поскольку argc для Java уже не имел смысла, так как размер массива в Java хранится в объекте массива, то достаточно было одного аргумента. Однако argv [в C] в себе на первом месте хранит название программы, а в Java args в себе на первом месте хранит первый аргумент, то есть если бы использовали argv - это могло бы запутать начинающих Java программистов. Поэтому, как мне кажется, args больше всего подходило, так как это: не agrv, структура хранения параметров немного иная короткое название для аргументов (arguments), прямо как в старом добром C/C++

Комментариев нет:

Отправить комментарий