Calvert's murmur

在 Go 讀取命令列引數

2021-09-14

約 1099 字 / 需 6 分鐘閱讀

原文:CalliCoderReading command line arguments in Go

命令列引數是在程式啟動時向程式提供額外資訊的一種方式。提供命命列引數最簡單的方法是執行指令時在後面指定以空格分隔的數值:

$ ./my-program Arg1 Arg2 Arg3

在 Go 讀取命令列引數

在 Go 中,你可以使用 os.Args 變數來讀取原始命令列引數。它是一個 slice 且包含了以程式名稱為首的所有命令列引數。

package main

import (
	"fmt"
	"os"
)

func main() {
	args := os.Args
	fmt.Printf("All arguments: %v\n", args)

	argsWithoutProgram := os.Args[1:]
	fmt.Printf("Arguments without program name: %v\n", argsWithoutProgram)
}
$ go build command-line-arguments.go

$ ./command-line-arguments Hello World From Command Line
All arguments: [./command-line-arguments Hello World From Command Line]
Arguments without program path: [Hello World From Command Line]

Go 命令列引數範例

這裡有另一個範例,它從命令列讀取一堆名字,並向所有名字打招呼:

package main

import (
	"fmt"
	"os"
)

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

	for _, name := range names {
		fmt.Printf("Hello, %s!\n", name)
	}
}
$ go build say-hello-to.go
$ ./say-hello-to Rajeev Sachin Jack Daniel
Hello, Rajeev!
Hello, Sachin!
Hello, Daniel!
Tags: Golang