gpt4 book ai didi

戈朗 : go command inside script?

转载 作者:数据小太阳 更新时间:2023-10-29 03:46:40 24 4
gpt4 key购买 nike

我有一个用 Golang 编写的脚本,我不太明白。我想知道他为什么要在脚本里面写go server.Start()?为什么不简单地编写 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.")
}
}

最佳答案

如果您调用一个以 go 关键字为前缀的函数,它将以 goroutine 的形式调用该函数。 goroutine 是一个能够与其他函数同时运行的函数。

通常当我们调用一个函数时,它会按正常顺序执行所有函数语句,然后返回到调用后的下一行。使用 goroutine,我们立即返回到下一行,而不是等待函数完成。

关于戈朗 : go command inside script?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37675910/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com