编写基础函数