这里只有 if 有 return，可能会导致返回值不一致，不方便调用者处理