1.为什么使用traits? 考虑下面的需求,实现一个方法Advance(iter,n),接收一个迭代器iter和移动距离n,将iter向前移动n个距离. 分析,因为存在不同类型的迭代器,做同一件事情,大家的能力不一样,做法当然不一样.有的迭代器可以一下子移到目标,有的迭代器只能一步一步移动,进行n次.因此,在方法内,必须要判断迭代器的类型,然后进行相应的操作.这种方法当然不好,运行期判断类型,需要核对继承层次中的每个类,效率差.有没有更好的办法呢? 2.解决办法: a.每个迭代器暴露一个接口,…