Swift:
Чтение аргументов командной строки
Как это сделать:
Swift делает чтение аргументов командной строки очень простым. Они доступны через структуру CommandLine. Вот суть:
for argument in CommandLine.arguments {
print(argument)
}Если вы вставите это в файл main.swift и запустите свою программу с дополнительным текстом, например, swift run YourProgram foo bar, ваш вывод будет выглядеть так:
/path/to/YourProgram
foo
barЭто каждый аргумент, выводимый на печать, включая путь к вашей программе как первый элемент — всегда помните об этом!
Глубокое погружение
Исторически аргументы командной строки были важной частью программирования, позволяя людям настраивать поведение программы без изменения кода. Это наследие Unix, и практически все языки поддерживают эту функцию.
В Swift, CommandLine.arguments — это массив строк, каждый элемент которого является частью вашего ввода, разделенной пробелами. Этот массив передается операционной системой, когда ваша программа запускается; Swift просто делает его легко доступным.
Помимо CommandLine.arguments, вы можете углубиться в более сложный парсинг с библиотеками, такими как Swift Argument Parser, для более крупной работы. Это удобно, когда вам нужно что-то большее, чем просто простые вводы – подумайте о флагах, опциях и подкомандах.
С точки зрения реализации, эти аргументы командной строки поступают к вам через массив C за кулисами — добрый старый argc и argv. Swift держит это скрытым, но все же сохраняет тот же базовый функционал, который вы найдете в C или C++.
Смотрите также
- Для общего взгляда на программы командной строки в Swift, смотрите Документацию Swift.org.
- Чтобы улучшить свои навыки разбора аргументов, посмотрите GitHub репозиторий Swift Argument Parser для более сложных настроек.
- Если вас интересует, как с этим справляются в других языках, попробуйте сравнить это с
sys.argvв Python илиprocess.argvв Node.