Чтение аргументов командной строки

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.