Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Go 未找到DNSError的条件测试_Go - Fatal编程技术网

Go 未找到DNSError的条件测试

Go 未找到DNSError的条件测试,go,Go,我正在使用net软件包执行DNS查找,例如: hostnames, err := net.LookupAddr("192.168.0.1") if err != nil { // Do something } 与其大胆地(愚蠢地?)假设任何错误都意味着相同的事情,我想检查IsNotFound bool的状态。任何人都可以提供一个惯用的示例,说明如何构造一个条件来检查错误是否为DNSError,如果是,IsNotFound bool是否为true/false 谢谢您可以通过将错误投射到D

我正在使用net软件包执行DNS查找,例如:

hostnames, err := net.LookupAddr("192.168.0.1")
if err != nil {
    // Do something
}
与其大胆地(愚蠢地?)假设任何错误都意味着相同的事情,我想检查IsNotFound bool的状态。任何人都可以提供一个惯用的示例,说明如何构造一个条件来检查错误是否为DNSError,如果是,IsNotFound bool是否为true/false


谢谢

您可以通过将错误投射到DNSError来实现这一点

if err != nil {
    if e, ok := err.(*net.DNSError); ok && e.IsNotFound {
        // err is a NotFound DNSError
    } else {
        // ...
    }
}