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:], " "))
}

以上三种写法的运行结果是一样的:
Go 笔记 - 小练习之获取命令行参数的三种方法_第1张图片

你可能感兴趣的:(Go 笔记 - 小练习之获取命令行参数的三种方法)