Go 语言中的空接口是接口类型的一种非凡的模式,即是一个没有任何办法的接口。因为,空接口没有任何办法,因而,咱们能够说 Golang 中的任何 数据类型 都实现了空接口。空接口是任何类型的父接口。
应用空接口保留一个数据的过程会比间接用数据对应类型的变量保留稍慢。因而在开发中,应在须要的中央应用空接口,而不是在所有中央应用空接口。
任何变量都能够赋值给 interface{} 类型的变量。
空接口的定义形式:
type emptyInt interface {}
// 申明一个空接口实例
var i interface{}
// 再比方函数应用空接口类型参数:func myfunc(i interface{})
通过空接口类型,Go 也能像其它动静语言一样,在数据结构中存储任意类型的数据。
构造体与接口的区别:
构造体: 由不同类型的元素组合而成。
1、struct 构造体中的类型能够是任意类型;
接口:
接口是一组办法的签名的汇合。
接口定义办法名,Golang 中的接口,不须要显示的实现。Interface 类型能够定义一组办法,然而这些不须要实现。并且 interface 不能蕴含任何变量。
只有一个变量,含有接口类型中的所有办法,那么这个变量就实现这个接口.
空构造体示意一个占位符,
空接口示意一个类型
参考: https://blog.csdn.net/whhcs/a…