Swift:
Читання аргументів командного рядка
Як це зробити:
Swift надає доступ до аргументів командного рядка через глобальний масив CommandLine.arguments
. Ось приклад того, як прочитати і використати ці аргументи:
// Надрукуємо всі аргументи командного рядка
for argument in CommandLine.arguments {
print(argument)
}
// Використання аргумента як частини інструкції
if CommandLine.arguments.contains("--verbose") {
print("Verbose mode is on.")
}
// Робота з опціональними значеннями для аргументів, що містяться в парах key=value
let arguments = CommandLine.arguments.reduce(into: [String: String]()) { result, argument in
let keyValue = argument.split(separator: "=").map(String.init)
if keyValue.count == 2 {
result[keyValue[0]] = keyValue[1]
}
}
if let path = arguments["--file"] {
print("File path provided: \(path)")
}
Якщо запустити програму з аргументом --file=example.txt
, наше маленьке додаток виведе:
File path provided: example.txt
Поглиблено:
Історично, читання аргументів командного рядка було одним з основних способів взаємодії з користувацькими програмами. Це дає користувачам можливість запускати скрипти із заздалегідь визначеними налаштуваннями, автоматизувати завдання та інтегруватися з іншими інструментами.
У Swift альтернатив не так багато, як у більш старих мовах програмування, але можна використовувати сторонні бібліотеки, які надають більш складну обробку аргументів командного рядка, такі як SwiftArgumentParser
. Вони можуть обробляти флаги, опції та надавати автоматично генеровані довідки.
Деталі імплементації зчитування аргументів зводяться до роботи з масивом рядків, які подані системою як вхідні дані. У реальних програмах важливо робити перевірку на помилки і переконатись, що аргументи, які користувач передає, є валідними.
Дивіться також:
Скористайтеся цими ресурсами для більш глибокого занурення у тему:
- Бібліотека SwiftArgumentParser на GitHub
- Розширений гайд по обробці командного рядка в Swift на raywenderlich.com