Golang:脚本中的go命令?

I got a script written in Golang that I do not quite understand. I want to know why he wrote go server.Start() inside the script? Why not simply write server.Start?

package main

import (
    "github.com/miekg/dns"
    "testing"
    "time"
)

const TEST_ADDR = "127.0.0.1:9953"

func TestDNSResponse(t *testing.T) {
    server := NewDNSServer(&Config{
        dnsAddr: TEST_ADDR,
    })
    go server.Start()

    // Allow some time for server to start
    time.Sleep(150 * time.Millisecond)

    m := new(dns.Msg)
    m.Id = dns.Id()
    m.Question = []dns.Question{
        dns.Question{"docker.", dns.TypeA, dns.ClassINET},
    }
    c := new(dns.Client)
    _, _, err := c.Exchange(m, TEST_ADDR)

    if err != nil {
        t.Error("Error response from the server", err)
    }

    server.Stop()

    c = new(dns.Client)
    _, _, err = c.Exchange(m, TEST_ADDR)

    if err == nil {
        t.Error("Server still running but should be shut down.")
    }
}

If you invoke a function prefixed with the go keyword it will call the function in as goroutine. A goroutine is a function that is capable of running concurrently with other functions.

Normally when we invoke a function it will execute all the function statements in normal order, then return to the next line following the invocation. With a goroutine we return immediately to the next line and don't wait for the function to complete.