2016-02-24 3 views
4

Кто-нибудь знает, в чем основное отличие между указанием аппарера с одним тире -r и двойной чертой --r?Разница между одиночным тире и двойным тире в argparse

Я столкнулся с this Julia language argparse, который классифицирует их как короткие и длинные, но точно не говорит, почему вы использовали бы один над другим.

+0

Это зависит от того, как вы его настроили! У вас обычно не было бы ни одной буквы для длинного варианта; Например, рассмотрим '-h' против' --help'. – jonrsharpe

ответ

8

Длинные варианты, как --foo приходят из GNU tradition:

GNU добавляет длинные опции к этим конвенциям. Длинные варианты состоят из '-', за которым следует имя из буквенно-цифровых символов и тире. Названия опций обычно от одного до трех слов, с дефисами для разделения слов. Пользователи могут сокращать имена опций, пока аббревиатуры уникальны.

Очень часто используется как короткий вариант -f, так и длинный вариант --foo. Двойная черта -- используется для выделения длинной опции из набора коротких опций. Как правило, вы можете написать как

go -a -b -c 

или конденсированная форма

go -abc 

Это отличается от

go --abc 

который является другой вариант.

+1

Кроме того, если значение связано с опцией, для короткой формы не будет места, например: 'go -fvalue' по сравнению с' go -foo = value' –

2

Если следовать обычным соглашениям, то одиночные аргументы штриховки состоят только из одного символа, поэтому -abc идентичен -a -b -c. Имена параметров с двойным тире трактуются как целые слова, поэтому --abc - это только один параметр с именем abc.

Смежные вопросы