Rust 程序设计语言 简体中文版 1.85.0为我们调用一个特殊的函数。这个函数叫做 drop,在这里 String 的作 者可以放置释放内存的代码。Rust 在结尾的 } 处自动调用 drop。 注意:在 C++ 中,这种 item 在生命周期结束时释放资源的模式有时被称作 资源获取 即初始化(Resource Acquisition Is Initialization (RAII))。如果你使用过 RAII 模式的 话应该对 Rust 的 drop 函数并不陌生。 {s1}, s2 = {s2}"); 这段代码能正常运行,并且明确产生图 4-3 中行为,这里堆上的数据确实被复制了。 当出现 clone 调用时,你知道一些特定的代码被执行而且这些代码可能相当消耗资源。你很容 易察觉到一些不寻常的事情正在发生。 只在栈上的数据:拷贝 这里还有一个没有提到的细节。这些代码使用了整型并且是有效的,它们是示例 4-2 中的一部 分: let x = 5; “可派生的 trait”。 那么哪些类型实现了 Copy trait 呢?你可以查看给定类型的文档来确认,不过作为一个通用的 规则,任何一组简单标量值的组合都可以实现 Copy,任何不需要分配内存或某种形式资源的 类型都可以实现 Copy 。如下是一些 Copy 的类型: • 所有整数类型,比如 u32。 • 布尔类型,bool,它的值是 true 和 false。 • 所有浮点数类型,比如 f64。0 码力 | 562 页 | 3.23 MB | 22 天前3
共 1 条
- 1













