最全的扩展方法