最初代码，可能有不正确。