Можно ли не устанавливать значение по умолчанию в пакете флагов в Go? Например, в пакете флагов вы можете написать следующую строку:
filename := flag.String("file", "test.csv", "Filename to cope with")
В приведенном выше коде я не хочу обязательно устанавливать значение по умолчанию, которое в данном случае равно test.csv
, и вместо этого всегда заставляю пользователей указывать собственное имя файла, и если оно не указано, я хочу вызвать ошибку и выйти из программы.
Один из способов, который я придумал, заключается в том, что я сначала проверяю значение filename
после выполнения flag.Parse()
, и если это значение равно test.csv
, то программа завершается с соответствующим сообщением об ошибке. Однако я не хочу писать такой избыточный код, если от него можно обойти - и даже если это невозможно, я бы хотел услышать здесь лучший способ справиться с проблемой.
Кстати, вы можете выполнять такие операции в модуле Python argparse
- я просто хочу реализовать то же самое, если смогу ...
Кроме того, могу ли я реализовать как короткие, так и длинные аргументы (другими словами, как -f
, так и -file
аргумент?) В пакете флагов?
Спасибо.