golang中的struct转换为interface{}

初始化集合

animals := []Animal{Dog{}, Cat{}} //初始化集合

根据集合大小生成interface{}数组 

anis := make([]interface{}, len(animals))

遍历集合并给interface{}赋值 

for k, v := range animals {
		anis[k] = "convert to interface{} : " + v.Speak()
	}

 完整代码:

package main //包名
//导入模块
import (
	"fmt"
)

//接口定义
type Animal interface {
	Speak() string //定义一个方法Speak返回类型是字符串
}

//定义Dog结构
type Dog struct {
}

//定义Cat结构
type Cat struct {
}

//在结构Dog中实现接口方法
func (d Dog) Speak() string {
	return "Dog Speak"
}

//在结构Cat中实现接口方法
func (c Cat) Speak() string {
	return "Cat Speak"
}

//定义一个方法,传入参数是interface{}的集合
func PrintAll(v []interface{}) {
	//遍历对象
	for _, r := range v {
		fmt.Println(r) //输出值
	}
}

//入口
func main() {
	fmt.Println("hi,go")
	animals := []Animal{Dog

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/995203.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存