MST

星途 面试题库

面试题:Go语言中类型断言错误处理基础

在Go语言中,当对一个接口类型变量进行类型断言时,如果断言失败,会返回什么?请举例说明如何正确处理这种断言失败的情况。
11.0万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
  1. 断言失败返回值: 在Go语言中,当对一个接口类型变量进行类型断言时,如果断言失败,会返回一个零值和false。例如,对于一个接口interface{}类型的变量i,如果尝试将其断言为string类型失败,如下代码:
    package main
    
    import (
        "fmt"
    )
    
    func main() {
        var i interface{} = 10
        s, ok := i.(string)
        fmt.Printf("s: %v, ok: %v\n", s, ok)
    }
    
    上述代码中,变量i实际是int类型,断言为string类型失败,s将是string类型的零值(空字符串""),okfalse
  2. 正确处理断言失败的情况: 可以通过检查第二个返回值ok来处理断言失败的情况。如下是一个示例:
    package main
    
    import (
        "fmt"
    )
    
    func main() {
        var i interface{} = 10
        if s, ok := i.(string); ok {
            fmt.Println("断言成功,值为:", s)
        } else {
            fmt.Println("断言失败")
        }
    }
    
    在上述代码中,通过if语句检查ok,如果oktrue,则说明断言成功,可以使用断言得到的值;如果okfalse,则说明断言失败,执行相应的错误处理逻辑。