Go的空接口
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go的空接口相关的知识,希望对你有一定的参考价值。
空接口(interface{})不包含任何的方法,正因为如此,所有的类型都实现了空接口,因此空接口可以存储任意类型的数值。它有点类似于C语言的void *类型。
????var v1 interface{} = 1 // 将int类型赋值给interface{}
????var v2 interface{} = "abc" // 将string类型赋值给interface{}
????var v3 interface{} = &v2 // 将*interface{}类型赋值给interface{}
????var v4 interface{} = struct{ X int }{1}
????var v5 interface{} = &struct{ X int }{1}
当函数可以接受任意的对象实例时,我们会将其声明为interface{},最典型的例子是标准库fmt中PrintXXX系列的函数,例如:
????func Printf(fmt string, args ...interface{})
????func Println(args ...interface{})
以上是关于Go的空接口的主要内容,如果未能解决你的问题,请参考以下文章