任何人都可以在Go中解釋標誌嗎?去標誌的解釋
flag.Parse()
var omitNewline = flag.Bool("n", false, "don't print final newline")
任何人都可以在Go中解釋標誌嗎?去標誌的解釋
flag.Parse()
var omitNewline = flag.Bool("n", false, "don't print final newline")
查看http://golang.org/pkg/flag/的完整描述。
爲flag.Bool的參數是(名稱字符串,布爾值,使用字符串)
名稱是尋找參數,值是默認值和 使用說明標誌的目的了-help參數或類似,並顯示與flag.Usage()。
對於更詳細的例子檢查here
flag
用於解析命令行參數。如果您將「-n」作爲命令行參數傳遞,則omitNewLine將被設置爲true。在教程中對此有更深入的解釋:
導入了標誌包後,第12行創建了一個全局變量來保存echo的-n標誌的值。變量omitNewline具有類型* bool,指向bool的指針。
flags是指定命令行程序選項的常用方法。
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
如果您提供了一個具有指定值的標誌,那麼默認值將通過傳遞一個標誌來覆蓋。
我真的想知道3個參數是什麼 – Casebash 2009-11-13 03:31:47