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

全栈后端 / go语法 :













Copyright © 2022-2024 笨鸟工具 x1y1z1.com All Rights Reserved.