既然类型为interface{}的变量可以有任何值,这是否意味着它本质上是一个通用指针,就像C中的void*?
interface{}
虽然C的void *个指针和GO的interface{}个变量共享可以存储任意类型的属性,但有一个很大的区别:GO接口变量也存储它们所保存的值的类型.
void *
因此,虽然C程序员应该确保从void *个指针到特定类型的任何强制转换都是安全的,但Go运行时可以判断任何类型断言是否正确.
接口变量中的类型信息还允许通过reflect包进行复杂的运行时自省,这对于普通的void *指针是不可能的.
reflect
Nginx核心知识150讲 -〔陶辉〕
玩转Git三剑客 -〔苏玲〕
TensorFlow快速入门与实战 -〔彭靖田〕
从0开始做增长 -〔刘津〕
OpenResty从入门到实战 -〔温铭〕
全栈工程师修炼指南 -〔熊燚(四火)〕
人人都能学会的编程入门课 -〔胡光〕
后端存储实战课 -〔李玥〕
小马哥讲Spring AOP编程思想 -〔小马哥〕
程序员的测试课 -〔郑晔〕
搞定音频技术 -〔冯建元 〕
林外 · 专利写作第一课 -〔林外〕
无涯教程 - Python机器学习教程
无涯教程 - Derby教程
无涯教程 - Matplotlib教程
无涯教程 - Tcl/Tk教程
无涯教程 - SQLite教程
无涯教程 - MATLAB教程
无涯教程 - CSS教程
无涯教程 - Flask教程