4.6 آموزش نوشتن برنامه command line

4.6 آموزش نوشتن برنامه command line

4.6.1 مقدمه #

هنگامی که می‌خواهید نرم‌افزاری بنویسید، ممکن است بخواهید از محیط Command Line یا خط فرمان استفاده کنید. خط فرمان، رابط کاربری ساده‌تری نسبت به محیط گرافیکی دارد و در برخی موارد، سرعت بخش بسیار قابل توجهی است. برای آموزش نوشتن برنامه در خط فرمان، شما به یک زبان برنامه‌نویسی نیاز دارید که از بسیاری از کانسپت‌هایی که در برنامه‌نویسی استفاده می‌شوند، پشتیبانی کند. ما به شما پیشنهاد می‌دهیم که از زبان برنامه‌نویسی Go استفاده کنید زیرا برای کار با Command Line بسیار مناسب است.

آموزش نوشتن برنامه Command Line به کمک زبان برنامه‌نویسی گو:

در اینجا، ما یک مثال ساده از برنامه Hello World با استفاده از Go و Command Line ارائه می‌دهیم. این برنامه، یک پیام ساده را به صفحه نمایش خط فرمان چاپ می‌کند.

اولین چیزی که شما باید در نظر داشته باشید این است که برنامه‌ی شما باید یک فایل با پسوند .go باشد. برای مثال، می‌توانید یک فایل با نام helloworld.go ایجاد کنید.

بعد از ایجاد فایل، شما باید کد زیر را به فایل خود اضافه کنید:

1package main
2
3import "fmt"
4
5func main() {
6	fmt.Println("Hello, World!")
7}
1$ go run helloworld.go
2Hello, World!

اگر کد بالا را به فایل helloworld.go اضافه کردید، می‌توانید با استفاده از Command Line، فایل را اجرا کنید. برای اجرای فایل، ابتدا باید به دایرکتوری فایل برید. سپس می‌توانید دستور برای اجرای فایل را وارد کنید.

برای مثال، فرض کنید فایل helloworld.go در دایرکتوری Documents قرار دارد. به عنوان نوشته، این دستورات را در Command Line وارد کنید:

$ cd Documents
$ go run helloworld.go

با اجرای دستور بالا، برنامه شما اجرا خواهد شد و پیام “Hello, World!” را در Command Line چاپ می‌کند.

نتیجه‌گیری:

استفاده از خط فرمان برای نوشتن برنامه‌های شما می‌تواند بسیار مفید باشد، اگر یادگیری زبان برنامه‌نویسی Go و چگونگی کار با Command Line را یاد بگیرید. در این مقاله، به شما یک مثال ساده از نوشتن برنامه Command Line با استفاده از Go برای شروع ارائه شد. با ادامه‌ی یادگیری زبان برنامه نویسی Go، شما می‌توانید برنامه‌های پیچیده‌تر را با استفاده از Command Line بسازید.

4.6.2 نحوه گرفتن arguments به عنوان ورودی از ترمینال #

برای گرفتن ورودی از Command Line به عنوان Argument در یک برنامه Go، شما می‌توانید از پایگاه‌داده os در Go استفاده کنید. برای دسترسی به Argumentها، شما می‌توانید متغیرهای os.Args را استفاده کنید. آرایه‌ی os.Args شامل تمامی Argumentهایی است که در Command Line به برنامه شما داده شده است. در زیر، یک مثال ساده از گرفتن دو Argument از Command Line در یک برنامه Go آورده شده است:

 1package main
 2
 3import (
 4	"fmt"
 5	"os"
 6)
 7
 8func main() {
 9	args := os.Args
10	fmt.Println("First Argument:", args[1])
11	fmt.Println("Second Argument:", args[2])
12}
1$ go run main.go hello world
2First Argument: hello
3Second Argument: world

در کد بالا، ابتدا، ما متغیر os.Args را به متغیر args اختصاص داده‌ایم. سپس، با استفاده از این متغیر، ما مقادیر دو Argument اول را چاپ کرده‌ایم. در اینجا، args[0] نام برنامه Go در Command Line است، بنابراین اولین Argument بعد از آن در args[1] و دومین Argument در args[2] قرار دارد. با تغییر این شماره‌ها، شما می‌توانید به Argument‌های دیگر در Command Line دسترسی داشته باشید.

4.6.3 کار با flag در زبان گو #

در زبان Go، شما می‌توانید از پکیج flag برای ایجاد و مدیریت Flagها در Command Line استفاده کنید. با استفاده از قابلیت Flag، شما می‌توانید به آرگومان های اختیاری و پارامترهای Command Line برنامه خود دسترسی پیدا کنید.

در پکیج flag، سه نوع Flag مختلف وجود دارند: string، bool و int. برای ایجاد یک Flag از هر نوع، می‌توانید از توابع flag.String، flag.Bool و flag.Int استفاده کنید.

در مثال زیر، ما به کمک Flag یک رشته، یک boolean و یک integer را تعریف و مقداردهی اولیه آن‌ها را انجام می‌دهیم:

 1package main
 2
 3import (
 4	"flag"
 5	"fmt"
 6)
 7
 8func main() {
 9	// تعریف یک Flag رشته برای نام کاربری
10	userName := flag.String("username", "", "نام کاربری")
11
12	// تعریف یک Flag boolean برای پرینت نتیجه
13	printResult := flag.Bool("print", false, "پرینت نتیجه؟")
14
15	// تعریف یک Flag integer برای تعداد تکرار
16	repeatCount := flag.Int("count", 1, "تعداد تکرار")
17
18	flag.Parse()
19
20	// استفاده از Flag ها
21	fmt.Println("نام کاربری:", *userName)
22	fmt.Println("پرینت نتیجه؟", *printResult)
23	fmt.Println("تعداد تکرار:", *repeatCount)
24}
1$ go run main.go -username=John -print=true -count=5
2نام کاربری: john
3پرینت نتیجه؟true
4تعداد تکرار:5

در مثال بالا، ما سه Flag ایجاد کرده‌ایم: username، print و count که به ترتیب متناظر با یک رشته، یک boolean و یک integer هستند. پارامتر اول تابع هر Flag نام آن است، پارامتر دوم مقدار پیش‌فرض و پارامتر سوم توضیحاتی در مورد Flag است.

در انتهای برنامه، با استفاده از تابع flag.Parse()، مقدار داده‌شده به Flagها از Command Line دریافت و مقداردهی به متغیرهای var استفاده شده در Flagها انجام می‌گیرد. در مثال بالا، ما با استفاده از اپراتور * به مقدار داده‌شده به هر Flag دریافت شده از Command Line دسترسی پیدا می‌کنیم.

با اجرای برنامه و وارد کردن یک Command Line مخصوص مثل زیر، می‌توانید مقدارهای مختلفی به Flagهای برنامه خود اختصاص دهید.

در این مثال، مقدار Flag username برابر با “John”، print برابر با true و count برابر با ۵ می‌باشد.