有have done sth 结构么?怎么用?