<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ### 進程參數 任何進程啟動時都可以賦予一個字符串數組作為參數,一般名為ARGV或ARGS。 通過解析這些參數可以讓你的程序更加通用,例如`cp`命令通過給定兩個參數就可以復制任意的文件,當然如果需要的參數太多最好還是使用配置文件。 ### 獲得進程Argument 進程參數一般可分為兩類,一是Argument,也就是作為進程運行的實體參數。例如`cp config.yml config.yml.bak`的這兩個參數。 設計Go程序時可以輕易地獲得這些參數,argument.go代碼如下,代碼來自[https://gobyexample.com/command-line-arguments](https://gobyexample.com/command-line-arguments)。 ~~~ package main import "os" import "fmt" func main() { argsWithProg := os.Args argsWithoutProg := os.Args[1:] arg := os.Args[3] fmt.Println(argsWithProg) fmt.Println(argsWithoutProg) fmt.Println(arg) } ~~~ 運行效果如下。 ~~~ $ go build command-line-arguments.go $ ./command-line-arguments a b c d [./command-line-arguments a b c d] [a b c d] c ~~~ 可以看出通過`os.Args`,不管是不是實體參數都可以獲得,但是對于類似開關的輔助參數,Go提供了另一種更好的方法。 ### 獲得進程Flag 使用Flag可以更容易得將命令行參數轉化成我們需要的數據類型,其中flag.go代碼如下,代碼來自[https://gobyexample.com/command-line-flags](https://gobyexample.com/command-line-flags)。 ~~~ package main import "flag" import "fmt" func main() { wordPtr := flag.String("word", "foo", "a string") numbPtr := flag.Int("numb", 42, "an int") boolPtr := flag.Bool("fork", false, "a bool") var svar string flag.StringVar(&svar, "svar", "bar", "a string var") flag.Parse() fmt.Println("word:", *wordPtr) fmt.Println("numb:", *numbPtr) fmt.Println("fork:", *boolPtr) fmt.Println("svar:", svar) fmt.Println("tail:", flag.Args()) } ~~~ 運行結果如下,相比直接使用`os.Args`代碼也簡潔了不少。 ~~~ root@87096bf68cb2:/go/src# ./flag -word=opt -numb=7 -fork -svar=flag word: opt numb: 7 fork: true svar: flag tail: [] root@87096bf68cb2:/go/src# ./flag -h Usage of ./flag: -fork=false: a bool -numb=42: an int -svar="bar": a string var -word="foo": a string ~~~ 使用Go獲取進程參數是很簡單的,不過一旦參數太多,最佳實踐還是使用配置文件。 進程參數只有在啟動進程時才能賦值,如果需要在程序運行時進行交互,就需要了解進程的輸入與輸出了。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看