讲师回答 / 陈雷
可以这么简单的理解:1、对于key是数字的,就不用涉及到hash运算,此时使用的是packed array; 当然如果key的值较大,或者间隔较大,还是会退化成hash array。 packed array 能够节省索引部分占用的内存,是一个性能上的优化;2、对于key是非数字的,必须用hash算法进行计算出来它所在bucket的位置,那么索引数组是必不可少的,只能是hash array。这是底层的实现,对于我们写php代码,需要关注的点是对于业务中的大数组,有没有可能设计一些算法,让它满足packe...
2018-12-19
最新回答 / weibo_雷神伤感_0
结构体(使用关键字 struct),是C语言里的东西,C语言不是面向对象的。C语言发明时候,还没有面向对象概念。后来出现语言C++,Java,C#等为标准,你可以把结构体和类(使用关键字class)对比起来。不难发现,结构体是公有的,数据和函数都可以被结构体外函数使用。在现在软件工程理论里,这被认为是不规范。所以后期语言都有class,默认私用。
2018-12-17