空接口 interface{} 是 Go 语言中一个非常有用的概念

2025-05-18ASPCMS社区 - fjmyhfvclm
Go 语言中的空接口

空接口 interface{} 是 Go 语言中一个非常有用的概念,它不包含任何方法声明,因此可以表示任何类型的值。空接口类似于其他语言中的 Object 类型或 void* 指针。

空接口的基本用法

go

{ // 空接口可以存储任何类型的值 var i interface{} i = 42 // 整数 fmt.Println(i) // 输出: 42 i = "hello" // 字符串 fmt.Println(i) // 输出: hello i = 3.14 // 浮点数 fmt.Println(i) // 输出: 3.14 i = true // 布尔值 fmt.Println(i) // 输出: true}

类型断言

要从空接口中获取原始值,需要使用类型断言:

go

package main import "fmt" func main() { var i interface{} = "hello" // 类型断言 s := i.(string) fmt.Println(s) // 输出: hello // 带检查的类型断言 val, ok := i.(int) if ok { fmt.Println("Integer:", val) } else { fmt.Println("Not an integer") // 输出: Not an integer } // 类型switch switch v := i.(type) { case int: fmt.Println("Integer:", v) case string: fmt.Println("String:", v) // 输出: String: hello default: fmt.Println

全部评论