Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Command line 如何在Go中获取命令行参数,而不使用;旗帜;包裹_Command Line_Go - Fatal编程技术网

Command line 如何在Go中获取命令行参数,而不使用;旗帜;包裹

Command line 如何在Go中获取命令行参数,而不使用;旗帜;包裹,command-line,go,Command Line,Go,我正在尝试为Go编写一个GNU风格的命令行解析器,因为flags包还不能处理所有这些: program -aAtGc --long-option-1 argument-to-1 --long-option-2 -- real-argument 显然,我不想使用标志包,因为我正在尝试替换它。还有其他方法可以到达命令行吗?别客气 package main import ( "fmt" "os" ) func main() { args := os.Args fm

我正在尝试为Go编写一个GNU风格的命令行解析器,因为
flags
包还不能处理所有这些:

program -aAtGc --long-option-1 argument-to-1 --long-option-2 -- real-argument
显然,我不想使用
标志
包,因为我正在尝试替换它。还有其他方法可以到达命令行吗?

别客气

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])
    }
}
主程序包
进口(
“fmt”
“操作系统”
)
func main(){
args:=os.args
fmt.Printf(“%d\n”,len(args))

对于i:=0;ios.Args的第一个参数是go文件的名称,因此要仅获取命令行参数,应该执行以下操作

package main

import (
    "fmt"
    "os"
)

func main() {
    args := os.Args[1:]

    for i := 0; i<len(args); i++ {
        fmt.Println(args[i])
    }
}
主程序包
进口(
“fmt”
“操作系统”
)
func main(){
args:=os.args[1:]

对于i:=0;我正在寻找这方面的实现,只是想知道你是否完成了它/开源了代码?谢谢你的解决方案。我不知道这是否相关。但其他人可能会发现它很有用。有两种方法可以运行它。1)运行build prog.go./prog hello world slappa 2)运行prog.go hello world slappa