代码之家  ›  专栏  ›  技术社区  ›  György Andrasek

在没有“flags”包的情况下,如何获取Go中的命令行参数?

  •  18
  • György Andrasek  · 技术社区  · 16 年前

    flags

    program -aAtGc --long-option-1 argument-to-1 --long-option-2 -- real-argument
    

    显然,我不想使用 包,因为我正试图替换它。还有其他方法可以到达命令行吗?

    1 回复  |  直到 16 年前
        1
  •  44
  •   Pravin Mishra    11 年前

    没有关系。

    package main
    
    import (
        "fmt"
        "os"
    )
    
    func main() {
        args := os.Args
        fmt.Printf("%d\n", len(args))
    
        for i := 0; i<len(args); i++ {
            fmt.Printf("%s\n", args[i])
        }
    }
    

        2
  •  0
  •   Kushal Billaiya    4 年前

    Args的第一个参数是go文件的名称,因此要仅获取命令行参数,应该执行以下操作

    package main
    
    import (
        "fmt"
        "os"
    )
    
    func main() {
        args := os.Args[1:]
    
        for i := 0; i<len(args); i++ {
            fmt.Println(args[i])
        }
    }