GO语言"errors"包中"As"函数的用法及代码示例。
用法:
func As(err error, target any) bool
As 找到 err 链中与 target 匹配的第一个错误,如果找到,则将 target 设置为该错误值并返回 true。否则,它返回 false。
该链由 err 本身和通过重复调用 Unwrap 获得的错误序列组成。
如果错误的具体值可分配给目标指向的值,或者错误具有方法 As(interface{}) bool 使得 As(target) 返回 true,则错误匹配目标。在后一种情况下,As 方法负责设置目标。
错误类型可能提供 As 方法,因此可以将其视为不同的错误类型。
如果 target 不是指向实现错误的类型或任何接口类型的非零指针,则会出现Panics。
例子:
package main
import (
"errors"
"fmt"
"io/fs"
"os"
)
func main() {
if _, err := os.Open("non-existing"); err != nil {
var pathError *fs.PathError
if errors.As(err, &pathError) {
fmt.Println("Failed at path:", pathError.Path)
} else {
fmt.Println(err)
}
}
}
输出:
Failed at path: non-existing
相关用法
- GO Asinh用法及代码示例
- GO Asin用法及代码示例
- GO AppendRune用法及代码示例
- GO Atan2用法及代码示例
- GO AppendQuoteRune用法及代码示例
- GO Atan用法及代码示例
- GO AppendInt用法及代码示例
- GO Acos用法及代码示例
- GO Acosh用法及代码示例
- GO AppendBool用法及代码示例
- GO Atoi用法及代码示例
- GO AppendQuoteToASCII用法及代码示例
- GO AppendFloat用法及代码示例
- GO Add32用法及代码示例
- GO Add64用法及代码示例
- GO AppendQuoteRuneToASCII用法及代码示例
- GO After用法及代码示例
- GO AppendQuote用法及代码示例
- GO AppendUint用法及代码示例
- GO Atanh用法及代码示例
注:本文由纯净天空筛选整理自golang.google.cn大神的英文原创作品 As。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。