Go 类型断言引出和基本使用

    技术2025-11-13  32

    类型断言引出和基本使用

    引例: 需求:如何将一个接口变量,赋给自定义类型的变量.=>引出类型断言 type Point struct { x int y int } func main() { var a interface{} var point Point = Point{1, 2} a = point //oK -- 如何将 a 赋给一个Point变量? var b Point -- b = a 不可以 b = a.(Point) -- 可以 fmt.Println(b) }

    z


    基本介绍

    类型断言:由于接口是一般类型,不知道具体类型,如果要转成具体类型,就需要使用类型断言具体的如下: --类型断言(带检测的) var x interface{} var b2 float32 = 2.1 x = b2 //空接口,可以接收任意类型 -- x=>float32 [使用类型断言] -- 类型断言(带检测的) if y, ok := x.(float32); ok { fmt.Println("convert success") fmt.Printf("y 的类型是 %T 值是=%v", y, y) } else { fmt.Println("convert fail") } fmt.Println("继续执行...") 对上面代码的说明: 在进行类型断言时,如果类型不匹配,就会报 panic因此进行类型断言时,要确保原来的空接口指向的就是断言的类型. 在进行断言时,带上检测机制,如果成功就 ok,否则也不要报 panic
    Processed: 0.014, SQL: 9