golang-读取字符串参数包括&

How do I read string argument include & in Go for example this link

$ ./main https://www.youtube.com/watch?v=G3PvTWRIhZA&list=PLQVvvaa0QuDeF3hP0wQoSxpkqgRcgxMqX

without use double quotation (")

$ ./main "https://www.youtube.com/watch?v=G3PvTWRIhZA&list=PLQVvvaa0QuDeF3hP0wQoSxpkqgRcgxMqX"

main.go

package main

import (
        "os"
        "fmt"
)

func main() {
        link := os.Args[1]

        fmt.Println(link)
}

$ go build main.go

$ ./main https://www.youtube.com/watch?v=G3PvTWRIhZA&list=PLQVvvaa0QuDeF3hP0wQoSxpkqgRcgxMqX

output will be

https://www.youtube.com/watch?v=G3PvTWRIhZA

Both @JimB and @Adrian are correct, the & needs to be escaped.

If you absolutely must find a workaround, you could opt to not use a command-line argument and rather read input instead to bypass need for escaping.

Example:

package main

import (
    "fmt"
)

func main() {
    var input string
    fmt.Scan(&input)
    fmt.Println(input)
}

input:

$ ./main https://www.youtube.com/watch?v=G3PvTWRIhZA&list=PLQVvvaa0QuDeF3hP0wQoSxpkqgRcgxMqX

output:

https://www.youtube.com/watch?v=G3PvTWRIhZA&list=PLQVvvaa0QuDeF3hP0wQoSxpkqgRcgxMqX