Command-Line Programs
Arguments Slice
A command-line program receives words in order, usually starting with a command name and its arguments.
arguments
Arguments are ordered strings that a program reads to decide what work to do.
Arguments Slice
arguments_slice.go
Replay: real traced execution (multi-file project)
package main
import "fmt"
func main() {
var action = "build"
args := []string{"task", action, "lesson"}
command := args[0]
selectedAction := args[1]
target := args[2]
fmt.Println("command=", command)
fmt.Println("action=", selectedAction)
fmt.Println("target=", target)
fmt.Println("argCount=", len(args))
}
package main
import "fmt"
func main() {
var action = "test"
args := []string{"task", action, "lesson"}
command := args[0]
selectedAction := args[1]
target := args[2]
fmt.Println("command=", command)
fmt.Println("action=", selectedAction)
fmt.Println("target=", target)
fmt.Println("argCount=", len(args))
}
package main
import "fmt"
func main() {
var action = "clean"
args := []string{"task", action, "lesson"}
command := args[0]
selectedAction := args[1]
target := args[2]
fmt.Println("command=", command)
fmt.Println("action=", selectedAction)
fmt.Println("target=", target)
fmt.Println("argCount=", len(args))
}
action ← "build", args ← []string{"task", "build", "lesson"}, command ← "task"
5func main() {6 var action→ "build" = "build" //@action="test", "clean"7 args→ []string{"task", "build", "lesson"} := []string{"task", action"build", "lesson"}89 command→ "task" := args[0]"task"10 selectedAction→ "build" := args[1]"build"11 target→ "lesson" := args[2]"lesson"1213 fmt.Println("command=", command"task")14 fmt.Println("action=", selectedAction"build")15 fmt.Println("target=", target"lesson")16 fmt.Println("argCount=", len(args[]string{"task", "build", "lesson"}))17}outputcommand= task action= build target= lesson argCount= 3
action ← "test", args ← []string{"task", "test", "lesson"}, command ← "task"
5func main() {6 var action→ "test" = "test"7 args→ []string{"task", "test", "lesson"} := []string{"task", action"test", "lesson"}89 command→ "task" := args[0]"task"10 selectedAction→ "test" := args[1]"test"11 target→ "lesson" := args[2]"lesson"1213 fmt.Println("command=", command"task")14 fmt.Println("action=", selectedAction"test")15 fmt.Println("target=", target"lesson")16 fmt.Println("argCount=", len(args[]string{"task", "test", "lesson"}))17}outputcommand= task action= test target= lesson argCount= 3
action ← "clean", args ← []string{"task", "clean", "lesson"}, command ← "task"
5func main() {6 var action→ "clean" = "clean"7 args→ []string{"task", "clean", "lesson"} := []string{"task", action"clean", "lesson"}89 command→ "task" := args[0]"task"10 selectedAction→ "clean" := args[1]"clean"11 target→ "lesson" := args[2]"lesson"1213 fmt.Println("command=", command"task")14 fmt.Println("action=", selectedAction"clean")15 fmt.Println("target=", target"lesson")16 fmt.Println("argCount=", len(args[]string{"task", "clean", "lesson"}))17}outputcommand= task action= clean target= lesson argCount= 3