Go:
কমান্ড লাইন আর্গুমেন্টগুলি পড়া
কিভাবে:
Go ভাষা কমান্ড-লাইন আর্গুমেন্টসগুলির সরাসরি প্রবেশাধিকার প্রদান করে os প্যাকেজের মাধ্যমে, বিশেষত os.Args এর মাধ্যমে, যা একটি স্ট্রিং অ্যারে। আসুন একটি সাধারণ উদাহরণ দিয়ে শুরু করি:
package main
import (
"fmt"
"os"
)
func main() {
// os.Args কমান্ড-লাইন আর্গুমেন্টসের কাঁচা ডেটা প্রদান করে
fmt.Println("কমান্ড-লাইন আর্গুমেন্টস:", os.Args)
if len(os.Args) > 1 {
// আর্গুমেন্টস লুপ করুন, প্রথমটি (প্রোগ্রামের নাম) বাদ দিয়ে
for i, arg := range os.Args[1:] {
fmt.Printf("আর্গুমেন্ট %d: %s\n", i+1, arg)
}
} else {
fmt.Println("কোন কমান্ড-লাইন আর্গুমেন্ট প্রদান করা হয়নি।")
}
}go run yourprogram.go arg1 arg2 দিয়ে চালানো হলে নমুনা আউটপুট হতে পারে:
কমান্ড-লাইন আর্গুমেন্টস: [/tmp/go-build123456789/b001/exe/yourprogram arg1 arg2]
আর্গুমেন্ট 1: arg1
আর্গুমেন্ট 2: arg2এটি প্রোগ্রামের নামসহ (প্রায়শই সূচক 0 এ) সমস্ত আর্গুমেন্ট প্রিন্ট করে এবং তারপর প্রদত্ত প্রতিটি আর্গুমেন্ট অবধি পুনরাবৃত্তি করে, তাদের প্রিন্ট করে। আরও নিয়ন্ত্রিত আর্গুমেন্ট পার্সিংয়ের জন্য, আপনি কমান্ড-লাইন অপশন পার্স করার জন্য flag প্যাকেজটি বিবেচনা করতে পারেন।
গভীর ডুব
ঐতিহাসিকভাবে, কমান্ড-লাইন আর্গুমেন্টসের প্রবেশাধিকার সি প্রোগ্রামিংয়ের মতো পুরনো একটি অনুশীলন যেখানে argc এবং argv[] একই উদ্দেশ্যে কাজ করে। Go-তে, os.Args এটিকে সরল কিন্তু ইচ্ছাকৃতভাবে প্রাথমিক করে তোলে। আরও জটিল দৃশ্যপটের জন্য, যেমন ফ্ল্যাগ অথবা অপশন হ্যান্ডেলিং, Go flag প্যাকেজটি প্রদান করে, যা শক্তিশালী পার্সিং ক্ষমতা নিয়ে আসে। যখন আপনার অ্যাপ্লিকেশনে কেবল পজিশনাল আর্গুমেন্টসের চেয়ে বেশি কিছু প্রয়োজন হয়, তখন এটি একটি “ভালো” বিকল্প হিসেবে দেখা যেতে পারে।
কমান্ড-লাইন আর্গুমেন্টসগুলিকে এসোসিয়েটিভ অ্যারে বা অবজেক্টে পার্স করার অন্তর্নির্মিত সুবিধা প্রদান করে এমন কিছু স্ক্রিপ্টিং ভাষা থেকে ভিন্ন, Go-র পদ্ধতি প্রোগ্রামারদের বেসিক প্রয়োজনের জন্য ম্যানুয়ালি os.Args ব্যবহার করে পার্সিং হ্যান্ডেল করার অথবা আরও উন্নত দৃশ্যপটের জন্