Почему в методе main в языке C
в роле аргументов принимаются argc
и argv
, а в Java
- args
? Как расшифровывается эта короткая форма или почему она именно такая?
В 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
, структура хранения параметров немного инаяarg
uments
), прямо как в старом добром C/C++Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Есть таблица на 30 и более полейЯ хочу разделить данную таблицу на несколько классов и в каждом классе по 5 полей, чтобы удобней было работать
Я Java изучаю только месяц и никак не могу понять, как правильно отправить audio, файл кодируется в base64 не верно и файл на сервере не открываетсяКак...
Для автоматической генерации id записи в базу oracle, используется встроенный триггер, ранее использовалась последовательность