Go编程语言书中的echo程序中的“ sep”有什么意义?

Source: https://github.com/adonovan/gopl.io/blob/master/ch1/echo1/main.go

package main

import (
    "fmt"
    "os"
)

func main() {
    var s, sep string
    for i := 1; i < len(os.Args); i++ {
        s += sep + os.Args[i]
        sep = " "
    }
    fmt.Println(s)
}

Here is the echo program from the The Go Programming Language book. It basically echoes whatever you type in the console after you run the program.

What is the point of sep string variable?

The program seems to run perfectly fine without and concatinating this way.

s += os.Args[i] instead of s += sep + os.Args[i]

In command line (Terminal or CMD.exe), cd to folder with this file and execute:

go run main.go a b c

Output will be:

a b c

Then, remove the sep variable from code and run it from command line again. New output will be:

abc

Therefore,sep variable is used as separator - it adds blank space between two command line arguments passed to main function on application startup

sep makes sure that there is a space between words and not at the beginning or end.

That's why it's a variable