سؤال

هل يمكن لأي شخص أن يفسر الأعلام في الذهاب؟

flag.Parse()
var omitNewline = flag.Bool("n", false, "don't print final newline")
هل كانت مفيدة؟

المحلول

يرى http://golang.org/pkg/flag/ للحصول على وصف كامل.

حجج flag.bool هي (سلسلة اسم، قيمة BOOL، سلسلة الاستخدام)

الاسم هو الحجة للبحث عنها، والقيمة هي القيمة الافتراضية والاستخدام يصف غرض العلم للحصول على وسيطة -HELP أو مشابه، ويتم عرضه مع العلم. USDAGE ().

لمزيد من الأمثلة التفصيلية هنا

نصائح أخرى

flag يستخدم لتحليل وسيطات سطر الأوامر. إذا قمت بتمرير "-n" كوسيطة سطر الأوامر، فسيتم تعيين OmitNewline إلى True. وأوضح قليلا في البرنامج التعليمي:

بعد استيراد حزمة العلم، يقوم السطر 12 بإنشاء متغير عالمي لعقد قيمة علامة Echo's -n. المتغير Omitnewline له نوع * BOOL، مؤشر إلى BOOL.

أعلام هي وسيلة شائعة لتحديد خيارات لبرامج سطر الأوامر.

package main

import (
  "flag"
  "fmt"
)

var (
  env *string
  port *int
)

// Basic flag declarations are available for string, integer, and boolean options.
func init() {
  env = flag.String("env", "development", "a string")
  port = flag.Int("port", 3000, "an int")
}

func main() {

  // Once all flags are declared, call flag.Parse() to execute the command-line parsing.
  flag.Parse()

  // Here we’ll just dump out the parsed options and any trailing positional 
  // arguments. Note that we need to dereference the points with e.g. *evn to 
  // get the actual option values.
  fmt.Println("env:", *env)
  fmt.Println("port:", *port)

}

تشغيل البرامج:

go run main.go

جرب برنامج التشغيل عن طريق إعطائه أولا بدون أعلام. لاحظ أنه إذا حذفت الأعلام، فإنهم يأخذون تلقائيا قيمهم الافتراضية.

go run command-line-flags.go --env production --port 2000

إذا قمت بتوفير علامة مع قيمة محددة، فسوف يقوم الافتراضي بالكتابة فوق واحد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top