已有其他高手写好了,可供参考。