ArgumentParser के साथ Swift CLI: शक्तिशाली कंसोल टूल बनाना

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Swift (iOS/macOS) के लिए CLI फ्रेमवर्क: ArgumentParser

\n\n

Apple इकोसिस्टम के लिए डेवलपमेंट की दुनिया में, अक्सर न केवल ग्राफिकल एप्लिकेशन बल्कि शक्तिशाली कंसोल उपयोगिताएँ बनाने की आवश्यकता होती है। चाहे वह बिल्ड ऑटोमेशन हो, डेटा प्रोसेसिंग हो, या iOS/macOS के लिए सहायक टूल बनाना हो — एक गुणवत्तापूर्ण CLI (कमांड लाइन इंटरफ़ेस) के बिना काम नहीं चल सकता। इन उद्देश्यों के लिए, Apple आधिकारिक फ्रेमवर्क ArgumentParser प्रदान करता है, जो Swift Package Manager का हिस्सा है। यह एक आधुनिक, टाइप-सेफ और घोषणात्मक टूल है जो न्यूनतम प्रयास के साथ Swift में कंसोल एप्लिकेशन बनाने की अनुमति देता है।

\n\n

CommandLine.arguments के माध्यम से सरल आर्गुमेंट पार्सिंग के विपरीत, ArgumentParser एक संरचित दृष्टिकोण प्रदान करता है: आप अपनी संरचनाओं के गुणों के रूप में कमांड, फ्लैग और विकल्पों का वर्णन करते हैं, और फ्रेमवर्क स्वचालित रूप से सहायता उत्पन्न करता है, त्रुटियों को संभालता है और इनपुट को मान्य करता है। आइए जानें कि macOS और iOS (Swift Package Manager के माध्यम से) के लिए इस फ्रेमवर्क का उपयोग कैसे करें।

\n\n

स्थापना और कनेक्शन

\n\n

ArgumentParser को अलग से स्थापित करने की आवश्यकता नहीं है — यह Swift मानक लाइब्रेरी (Swift 5.5 से शुरू) के भाग के रूप में उपलब्ध है। अपने प्रोजेक्ट में उपयोग करने के लिए, Package.swift में निर्भरता जोड़ें:

\n\n
// swift-tools-version:5.7\nimport PackageDescription\n\nlet package = Package(\n    name: "MyCLI",\n    dependencies: [\n        .package(url: "https://github.com/apple/swift-argument-parser", from: "1.2.0")\n    ],\n    targets: [\n        .executableTarget(\n            name: "MyCLI",\n            dependencies: [\n                .product(name: "ArgumentParser", package: "swift-argument-parser")\n            ]\n        )\n    ]\n)\n
\n\n

iOS प्रोजेक्ट्स के लिए, Xcode में Swift Package Manager के माध्यम से फ्रेमवर्क जोड़ा जा सकता है, उसी रिपॉजिटरी को निर्दिष्ट करके। हालांकि, यह ध्यान रखना महत्वपूर्ण है कि CLI एप्लिकेशन आमतौर पर macOS के लिए बनाए जाते हैं, लेकिन लाइब्रेरी का उपयोग iOS एप्लिकेशन में आंतरिक स्ट्रिंग पार्सिंग के लिए भी किया जा सकता है।

\n\n

मुख्य अवधारणाएँ

\n\n

ArgumentParser तीन प्रमुख संस्थाओं के आसपास बनाया गया है:

\n\n
    \n
  • कमांड (ParsableCommand) — मुख्य तत्व, जो एक CLI कमांड का प्रतिनिधित्व करता है। प्रत्येक कमांड एक संरचना है जो ParsableCommand प्रोटोकॉल को लागू करती है।
  • \n
  • आर्गुमेंट (@Argument) — स्थितीय पैरामीटर, इनपुट के लिए अनिवार्य।
  • \n
  • विकल्प (@Option) — लंबे (--name) और छोटे (-n) फ्लैग के साथ नामित पैरामीटर।
  • \n
  • फ्लैग (@Flag) — बूलियन स्विच (--verbose, --quiet)।
  • \n
\n\n

उदाहरण: एक सरल CLI कैलकुलेटर बनाना

\n\n

macOS के लिए एक कंसोल एप्लिकेशन बनाएं जो बुनियादी अंकगणितीय संचालन करता है:

\n\n
import ArgumentParser\n\nstruct Calculator: ParsableCommand {\n    static let configuration = CommandConfiguration(\n        commandName: "calc",\n        abstract: "कमांड लाइन के लिए सरल कैलकुलेटर",\n        discussion: "जोड़, घटाव, गुणा और भाग का समर्थन करता है।"\n    )\n\n    @Argument(help: "पहली संख्या")\n    var firstNumber: Double\n\n    @Argument(help: "दूसरी संख्या")\n    var secondNumber: Double\n\n    @Option(name: [.short, .long], help: "संक्रिया: add, sub, mul, div")\n    var operation: String = "add"\n\n    @Flag(name: [.short, .long], help: "विस्तृत आउटपुट")\n    var verbose: Bool = false\n\n    mutating func run() throws {\n        let result: Double\n        switch operation {\n        case "add":\n            result = firstNumber + secondNumber\n        case "sub":\n            result = firstNumber - secondNumber\n        case "mul":\n            result = firstNumber * secondNumber\n        case "div":\n            guard secondNumber != 0 else {\n                throw ValidationError("शून्य से भाग!") \n            }\n            result = firstNumber / s                    

अनुशंसाएँ