NIUCLOUD是一款SaaS管理后台框架多应用插件+云编译。上千名开发者、服务商正在积极拥抱开发者生态。欢迎开发者们免费入驻。一起助力发展! 广告
标准的拷贝类型包含整型,浮点型,字符型和bool型,还有少数其他类型。元组和固定长度的数组如果里面的元素是拷贝类型,那么它们也是拷贝类型 只有能bit-for-bit拷贝的类型才是拷贝类型 一个基本规则,任何类型在它被移除的时候要做什么特殊操作都不能是拷贝类型,向量需要释放它的元素,文件需要关闭它的句柄,MutexGuard需要解锁它的mutex。对这些类型进行bit-for-bit拷贝会让它们的原始资源的归属不清晰。变成多个所有者。 默认情况下结构体个枚举体不是拷贝类型。 用户自定义的类型不是拷贝类型只是默认的。可以用#[derive(Copy,Clone)]声明一个结构体是拷贝类型,前提是结构体所有成员是拷贝类型。假如把此生命加到不能拷贝的类型上,会报编译错误。 在rust中所有移动都是bit-for-bit的,执行浅拷贝并把源变量置成未初始化。拷贝也是浅拷贝,不过源变量仍然有效。 rust的一个原则是开销对程序员而言应该是显而易见的。