重构scan 方法