采用扩展方式制作
have not handle out of range
完善外抛逻辑
扩展方式,最后一版