go语言空interface作为函数参数和返回值的作用、用法
空interface的语法
type interfaceName interface {}
空interface与一般的接口interface的声明语法类似,只是空interface的花括号“{}”里头没有内容。
go语言空interface有什么用
空的interface接口可以用来存储任意类型的数值,当空interface作为函数参数和返回值使用的时候,那么这个函数就可以接受任意类型的值作为参数,也可以返回任意类型的数值!是不是很惊艳且充满想象空间呢?
空interface实例
package main
import (
"fmt"
"reflect"
)
type A interface{} //空的接口interface
func nullinter(b A) (c A) { //以空接口类型对象为函数参数和返回值
return b
}
func main() {
var a A
i := 1
a = i
b := nullinter(a)
fmt.Println(reflect.TypeOf(b))
c := "test"
a = i
b = nullinter(c)
fmt.Println(reflect.TypeOf(b)) //reflect.TypeOf()函数用于返回变量的类型
}
代码输出:
int
string