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.