MST

星途 面试题库

面试题:Go语言中类型断言的基础应用

在Go语言中,给定一个接口类型变量 `var i interface{} = "hello"`,请使用类型断言将其转换为 `string` 类型,并处理可能出现的错误。同时解释一下类型断言失败时会返回什么值。
49.2万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
package main

import (
    "fmt"
)

func main() {
    var i interface{} = "hello"
    s, ok := i.(string)
    if!ok {
        fmt.Println("类型断言失败")
    } else {
        fmt.Println(s)
    }
}

类型断言失败时,如果使用带检测的断言形式 v, ok := i.(T)ok 将为 falsev 将是类型 T 的零值。例如在上述代码中,如果 i 实际类型不是 strings 将是 ""string 类型的零值),okfalse。如果使用不带检测的断言形式 v := i.(T),当类型断言失败时会触发运行时恐慌(panic)。