代码性能:
实现一个简略的命令行工具:将输出的命令行参数打印进去
代码如下(三种办法):
第一种办法:应用 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:], " "))
}
以上三种写法的运行后果是一样的: