起因
在最开始学习go语言的时候肯定都会用到用list存储一些结构体。然后再把list里面存储的东西给取出来用,结果取出来用的时候发现会报错。
图中为list存储了net.Conn结构体,存好存但是取出来的时候不能用了。最开始因为list存的是Element,所以想着把Element转换为net.Conn甚至尝试过用结构体转换为json字符串,再将字符串装换为结构体的方法也试过了,但是由于Element中元素属性都是小写或者说是私有的不能被转换为josn,最后以失败告终。
解决
到最后才发现Element中Value存放的是接口,所以只要将接口转换为结构体问题就都解决了。
conn , ok := (i.value).(net.Conn)
其中conn为返回的结构体,而OK是布尔型表示有没有转换成功,true为成功。