ZetCode

Go 命令行参数

最后修改时间 2024 年 4 月 11 日

在本文中,我们将展示如何将命令行参数传递给 Go 程序。

命令行参数

命令行参数是传递给程序的选项和数据。我们通常将参数传递给控制台程序,但有时也将参数传递给 GUI 程序。

os.Args 包含命令行参数。此切片中的第一个值是程序名称,而 os.Args[1:] 包含程序的参数。单个参数通过索引操作进行访问。

read_args.go
package main

import (
    "fmt"
    "os"
    "reflect"
)

func main() {

    prg_name := os.Args[0]
    fmt.Printf("The program name is %s\n", prg_name)

    names := os.Args[1:]
    fmt.Println(reflect.TypeOf(names))

    for _, name := range names {

        fmt.Printf("Hello, %s!\n", name)
    }
}

此示例接收命令行参数。

prg_name := os.Args[0]
fmt.Printf("The program name is %s\n", prg_name)

我们获取并打印第一个参数,即程序名称。

names := os.Args[1:]

我们获取所有接收到的参数。

fmt.Println(reflect.TypeOf(names))

我们打印保存参数的类型(切片)。

for _, name := range names {

    fmt.Printf("Hello, %s!\n", name)
}

我们遍历参数,并从每个参数构建一条消息。

$ go build read_args.go 
$ ./read_args Jan Peter Lucia
The program name is ./read_args
[]string
Hello, Jan!
Hello, Peter!
Hello, Lucia!

我们构建程序并运行它。我们在命令行上传递了三个名称给程序。

来源

Go os 包 - 参考

在本文中,我们介绍了如何将命令行参数传递给 Go 程序。

作者

我是 Jan Bodnar,一名充满热情的程序员,拥有丰富的编程经验。自 2007 年以来,我一直在撰写编程文章。迄今为止,我已撰写了 1400 多篇文章和 8 本电子书。我在编程教学方面拥有十多年的经验。

列出所有 Go 教程