==暂时留着用来作为笔记的补充源代码==