Ownership Inventory #1
所有权清单是一系列测验,用于检查您对真实场景中所有权概念的理解。这些场景的灵感来自 StackOverflow 上关于 Rust 的常见问题。您可以使用这些问题来测试您目前对所有权理解的程度。
一项新技术:浏览器内 IDE
这些问题将涉及使用您以前未见过的函数的 Rust 程序。因此,我们将使用一种实验性技术,该技术支持浏览器中的 IDE 功能。 IDE 使您可以获取有关不熟悉的函数和类型的信息。例如,尝试在下面的程序中执行以下操作
- 将鼠标悬停在
replace
上以查看其类型和描述。 - 将鼠标悬停在
s2
上以查看其推断类型。
/// Turns a string into a far more exciting string
fn make_exciting(s: &str) -> String {
let s2 = s.replace(".", "!");
let s3 = s2.replace("?", "‽");
s3
}
关于这项实验性技术的一些重要注意事项
平台兼容性: 浏览器内 IDE 在触摸屏上无法工作。浏览器内 IDE 仅在 Google Chrome 109 和 Firefox 107 上测试有效。它可能在旧版本的 Safari 中无法工作。
内存使用: 浏览器内 IDE 使用 WebAssembly 构建的 rust-analyzer,这可能会占用相当多的内存。每个 IDE 实例似乎占用大约 ~300 MB。(注意:我们也收到了一些关于 >10GB 内存使用情况的报告。)
滚动: 如果您的光标在滚动时与编辑器相交,浏览器内 IDE 将“吞噬”您的光标。如果您在滚动页面时遇到问题,请尝试将光标移动到最右侧的滚动条上。
加载时间: IDE 可能需要长达 15 秒的时间才能为新程序初始化。当您与编辑器中的代码交互时,它会显示“正在加载…”。