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

action
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))
}
  1. 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
  1. 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
  1. 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