获得徽章 0
- ##关于go指针与接口
对于一个接口类型的变量来说,例如上面的变量pet,我们赋给它的值可以被叫做它的实际值(也称动态值),而该值的类型可以被叫做这个变量的实际类型(也称动态类型)。
比如,我们把取址表达式&cat的结果值赋给了变量pet,这时这个结果值就是变量pet的动态值,而此结果值的类型*Cat就是该变量的动态类型。
动态类型这个叫法是相对于静态类型而言的。对于变量pet来讲,它的静态类型就是Pet,并且永远是Pet,但是它的动态类型却会随着我们赋给它的动态值而变化。
比如,只有我把一个Cat类型的值赋给变量pet之后,该变量的动态类型才会是Cat。如果还有一个Pet接口的实现类型Fish,并且我又把一个此类型的值赋给了pet,那么它的动态类型就会变为Fish。
还有,在我们给一个接口类型的变量赋予实际的值之前,它的动态类型是不存在的展开评论点赞