Go语言空接口

Go语言空接口教程

Go 语言 中的空接口是 接口 类型的一种特殊的形式,即是一个没有任何 方法 的接口。因为,空接口没有任何方法,因此,我们可以说 Golang 中的任何 数据类型 都实现了空接口。空接口是任何类型的父接口。

使用空接口保存一个数据的过程会比直接用数据对应类型的 变量 保存稍慢。因此在开发中,应在需要的地方使用空接口,而不是在所有地方使用空接口。

Go语言空接口

定义

var iname interface{}

说明

我们定义了一个空接口类型的变量 iname,该变量可以保存任何类型的变量。

案例

空接口保存任何变量

使用空接口,可以保存任何类型的变量

package main import ( "fmt" ) func main() { fmt.Println("嗨客网(www.haicoder.net)") // 使用空接口,可以保存任何类型的变量 var any interface{} any = 1024 fmt.Println("Any =", any) any = 1024.1 fmt.Println("Any =", any) any = "HaiCoder" fmt.Println("Any =", any) any = true fmt.Println("Any =", any) }

程序运行后,控制台输出如下:

17_golang空接口.png

首先,我们定义了一个空接口类型的变量 any,接着,我们分别给空接口变量 any,赋值为 int 类型float 类型string 类型bool 类型,并打印。

我们发现,空接口类型的变量可以保存任何类型的变量,并能正确存储对应的值。

空接口获取变量

从空接口获取变量,必须使用类型转

package main import ( "fmt" ) func main() { fmt.Println("嗨客网(www.haicoder.net)") // 从空接口获取变量,必须使用类型转 var any interface{} any = 1024 fmt.Println("Any =", any) var i int = any fmt.Println("I =", i) }

程序运行后,控制台输出如下:

18_golang空接口.png

首先,我们定义了一个空接口类型的变量 any,接着,我们给空接口变量 any,赋值为 int类型的值 1024,并打印。

接着,我们再次将变量 any 直接赋值给 int 类型的变量 i,程序报错,因为空接口的类型不可以直接使用,必须要经过 类型断言转换 之后,才可以使用。

Golang空接口总结

Go 语言中的空接口是接口类型的一种特殊的形式,即是一个没有任何方法的接口。因为,空接口没有任何方法,因此,我们可以说 Golang 中的任何数据类型都实现了空接口。空接口是任何类型的父接口。