博客 / 詳情

返回

Go 筆記 - 小練習之獲取命令行參數的三種方法

代碼功能:

實現一個簡單的命令行工具:將輸入的命令行參數打印出來

代碼如下(三種方法):

第一種方法:使用 for 循環

package main

import (
    "fmt"
    "os"
)

func main() {
    // r 是最終要輸出的結果,sep 代表分隔符
    var r, sep string

    // 使用 os.Args 獲取命令行參數
    for i := 1; i < len(os.Args); i++ {
        r += sep + os.Args[i] // 第一次循環的時候 sep 就是個空字符串。則 r 第一次循環的結果就是 os.Args[1]
        sep = " "             // 將分隔符定義為空格。第二次循環的結果就是 os.Args[1] + 空格 + os.Args[2]
    }

    fmt.Println("您輸入的參數為:", r)
}

第二種方法:使用 range

package main

import (
    "fmt"
    "os"
)

func main() {
    // r 是最終要輸出的結果,sep 代表分隔符
    var r, sep string

    // 使用 os.Args 獲取命令行參數
    for _, arg := range os.Args[1:] { // os.Args[1:] 從 1 開始是因為 0 是這個工具名本身,相當於 shell 的 $0
        r += sep + arg
        sep = " "
    }

    fmt.Println("您輸入的參數為:", r)
}

第三種方法(最簡單,推薦!):使用 strings.Join() 函數

package main

import (
    "fmt"
    "os"
    "strings"
)

func main() {
    fmt.Println("您輸入的參數為:", strings.Join(os.Args[1:], " "))
}

以上三種寫法的運行結果是一樣的:
image.png

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.