-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathch04-00-understanding-ownership.html
30 lines (29 loc) · 28.2 KB
/
ch04-00-understanding-ownership.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>认识所有权</title>
<meta name="generator" content="VuePress 1.5.3">
<meta name="description" content="">
<link rel="preload" href="/assets/css/0.styles.12e35fbb.css" as="style"><link rel="preload" href="/assets/js/app.e6b14c5e.js" as="script"><link rel="preload" href="/assets/js/3.ecc21787.js" as="script"><link rel="preload" href="/assets/js/1.032ec45e.js" as="script"><link rel="preload" href="/assets/js/33.e8747222.js" as="script"><link rel="prefetch" href="/assets/js/10.0db432dd.js"><link rel="prefetch" href="/assets/js/100.1149107d.js"><link rel="prefetch" href="/assets/js/101.feae8ac2.js"><link rel="prefetch" href="/assets/js/102.4be35ad2.js"><link rel="prefetch" href="/assets/js/103.cb0bcc26.js"><link rel="prefetch" href="/assets/js/104.581a9df8.js"><link rel="prefetch" href="/assets/js/105.a5b31ce3.js"><link rel="prefetch" href="/assets/js/106.feb2cd4c.js"><link rel="prefetch" href="/assets/js/107.c74c3f7d.js"><link rel="prefetch" href="/assets/js/108.6a32c62d.js"><link rel="prefetch" href="/assets/js/109.3c3188fd.js"><link rel="prefetch" href="/assets/js/11.04463d2c.js"><link rel="prefetch" href="/assets/js/110.5f3f2327.js"><link rel="prefetch" href="/assets/js/111.374cf29b.js"><link rel="prefetch" href="/assets/js/112.37a66948.js"><link rel="prefetch" href="/assets/js/113.0e87d41d.js"><link rel="prefetch" href="/assets/js/114.e2641184.js"><link rel="prefetch" href="/assets/js/115.903cb5c3.js"><link rel="prefetch" href="/assets/js/116.d1cfad4c.js"><link rel="prefetch" href="/assets/js/117.ca412492.js"><link rel="prefetch" href="/assets/js/118.23919bb0.js"><link rel="prefetch" href="/assets/js/12.2de3af2e.js"><link rel="prefetch" href="/assets/js/13.69a23a33.js"><link rel="prefetch" href="/assets/js/14.3335c861.js"><link rel="prefetch" href="/assets/js/15.a469e71d.js"><link rel="prefetch" href="/assets/js/16.ee173d9e.js"><link rel="prefetch" href="/assets/js/17.959da5cf.js"><link rel="prefetch" href="/assets/js/18.0aa8fea6.js"><link rel="prefetch" href="/assets/js/19.21e6464d.js"><link rel="prefetch" href="/assets/js/20.b6d578fe.js"><link rel="prefetch" href="/assets/js/21.986be82f.js"><link rel="prefetch" href="/assets/js/22.47be6a63.js"><link rel="prefetch" href="/assets/js/23.15fe85eb.js"><link rel="prefetch" href="/assets/js/24.b3a04842.js"><link rel="prefetch" href="/assets/js/25.ae75ed87.js"><link rel="prefetch" href="/assets/js/26.643de6d4.js"><link rel="prefetch" href="/assets/js/27.6663d0a9.js"><link rel="prefetch" href="/assets/js/28.4669e096.js"><link rel="prefetch" href="/assets/js/29.65085b51.js"><link rel="prefetch" href="/assets/js/30.b4315895.js"><link rel="prefetch" href="/assets/js/31.e7ecf0dd.js"><link rel="prefetch" href="/assets/js/32.5d1db543.js"><link rel="prefetch" href="/assets/js/34.852658b5.js"><link rel="prefetch" href="/assets/js/35.fa3f0352.js"><link rel="prefetch" href="/assets/js/36.8ebb5fa0.js"><link rel="prefetch" href="/assets/js/37.fa05856b.js"><link rel="prefetch" href="/assets/js/38.9aaa7af9.js"><link rel="prefetch" href="/assets/js/39.1a8b291e.js"><link rel="prefetch" href="/assets/js/4.f09c27b1.js"><link rel="prefetch" href="/assets/js/40.b9a756f6.js"><link rel="prefetch" href="/assets/js/41.7cef9fb3.js"><link rel="prefetch" href="/assets/js/42.04a2dfd5.js"><link rel="prefetch" href="/assets/js/43.b586e125.js"><link rel="prefetch" href="/assets/js/44.83db3147.js"><link rel="prefetch" href="/assets/js/45.e09151dc.js"><link rel="prefetch" href="/assets/js/46.f4d7d1f9.js"><link rel="prefetch" href="/assets/js/47.b935a8bb.js"><link rel="prefetch" href="/assets/js/48.10681e24.js"><link rel="prefetch" href="/assets/js/49.04036517.js"><link rel="prefetch" href="/assets/js/5.9229c7e7.js"><link rel="prefetch" href="/assets/js/50.385b0179.js"><link rel="prefetch" href="/assets/js/51.0a5c574d.js"><link rel="prefetch" href="/assets/js/52.5cd11b21.js"><link rel="prefetch" href="/assets/js/53.2efb9eb9.js"><link rel="prefetch" href="/assets/js/54.dd3a8f7d.js"><link rel="prefetch" href="/assets/js/55.e72498d3.js"><link rel="prefetch" href="/assets/js/56.5611b803.js"><link rel="prefetch" href="/assets/js/57.004dcc8a.js"><link rel="prefetch" href="/assets/js/58.de3a101d.js"><link rel="prefetch" href="/assets/js/59.a4d35b66.js"><link rel="prefetch" href="/assets/js/6.2ede05ad.js"><link rel="prefetch" href="/assets/js/60.ffa87f2b.js"><link rel="prefetch" href="/assets/js/61.c97c2157.js"><link rel="prefetch" href="/assets/js/62.1a964fd5.js"><link rel="prefetch" href="/assets/js/63.4fadefff.js"><link rel="prefetch" href="/assets/js/64.b0507c62.js"><link rel="prefetch" href="/assets/js/65.09fcdb27.js"><link rel="prefetch" href="/assets/js/66.c8f8a5cc.js"><link rel="prefetch" href="/assets/js/67.02fa33de.js"><link rel="prefetch" href="/assets/js/68.d49f848f.js"><link rel="prefetch" href="/assets/js/69.9dc909c1.js"><link rel="prefetch" href="/assets/js/7.00d72aac.js"><link rel="prefetch" href="/assets/js/70.e9702890.js"><link rel="prefetch" href="/assets/js/71.41a43a69.js"><link rel="prefetch" href="/assets/js/72.9f6f3145.js"><link rel="prefetch" href="/assets/js/73.64d032a1.js"><link rel="prefetch" href="/assets/js/74.6bb7d811.js"><link rel="prefetch" href="/assets/js/75.f9ddba21.js"><link rel="prefetch" href="/assets/js/76.ad390b83.js"><link rel="prefetch" href="/assets/js/77.bc150afb.js"><link rel="prefetch" href="/assets/js/78.69dc1271.js"><link rel="prefetch" href="/assets/js/79.5ce4cf53.js"><link rel="prefetch" href="/assets/js/8.f3a923c0.js"><link rel="prefetch" href="/assets/js/80.a9598d24.js"><link rel="prefetch" href="/assets/js/81.b1ca9b22.js"><link rel="prefetch" href="/assets/js/82.1017a114.js"><link rel="prefetch" href="/assets/js/83.d4fdce6e.js"><link rel="prefetch" href="/assets/js/84.f13715fe.js"><link rel="prefetch" href="/assets/js/85.af5497b5.js"><link rel="prefetch" href="/assets/js/86.07fb3684.js"><link rel="prefetch" href="/assets/js/87.d175c777.js"><link rel="prefetch" href="/assets/js/88.aa6d98dd.js"><link rel="prefetch" href="/assets/js/89.3d1bef74.js"><link rel="prefetch" href="/assets/js/9.3c7c9ecc.js"><link rel="prefetch" href="/assets/js/90.f46d49e9.js"><link rel="prefetch" href="/assets/js/91.6f0b514b.js"><link rel="prefetch" href="/assets/js/92.5a1abbdf.js"><link rel="prefetch" href="/assets/js/93.c50314c2.js"><link rel="prefetch" href="/assets/js/94.becb0d94.js"><link rel="prefetch" href="/assets/js/95.cc5ea7c4.js"><link rel="prefetch" href="/assets/js/96.1ba1f23b.js"><link rel="prefetch" href="/assets/js/97.0436550a.js"><link rel="prefetch" href="/assets/js/98.180142a4.js"><link rel="prefetch" href="/assets/js/99.fa82e156.js">
<link rel="stylesheet" href="/assets/css/0.styles.12e35fbb.css">
</head>
<body>
<div id="app" data-server-rendered="true"><div class="theme-container" data-v-dad8a512><div data-v-dad8a512><div id="loader-wrapper" class="loading-wrapper" data-v-d48f4d20 data-v-dad8a512 data-v-dad8a512><div class="loader-main" data-v-d48f4d20><div data-v-d48f4d20></div><div data-v-d48f4d20></div><div data-v-d48f4d20></div><div data-v-d48f4d20></div></div> <!----> <!----></div> <div class="password-shadow password-wrapper-out" style="display:none;" data-v-64685f0e data-v-dad8a512 data-v-dad8a512><h3 class="title" style="display:none;" data-v-64685f0e data-v-64685f0e></h3> <!----> <label id="box" class="inputBox" style="display:none;" data-v-64685f0e data-v-64685f0e><input type="password" value="" data-v-64685f0e> <span data-v-64685f0e>Konck! Knock!</span> <button data-v-64685f0e>OK</button></label> <div class="footer" style="display:none;" data-v-64685f0e data-v-64685f0e><span data-v-64685f0e><i class="iconfont reco-theme" data-v-64685f0e></i> <a target="blank" href="https://vuepress-theme-reco.recoluan.com" data-v-64685f0e>vuePress-theme-reco</a></span> <span data-v-64685f0e><i class="iconfont reco-copyright" data-v-64685f0e></i> <a data-v-64685f0e><!---->
<!---->
2020
</a></span></div></div> <div class="hide" data-v-dad8a512><header class="navbar" data-v-dad8a512><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/" class="home-link router-link-active"></a> <div class="links"><div class="color-picker"><a class="color-button"><i class="iconfont reco-color"></i></a> <div class="color-picker-menu" style="display:none;"><div class="mode-options"><h4 class="title">Choose mode</h4> <ul class="color-mode-options"><li class="dark">dark</li><li class="auto active">auto</li><li class="light">light</li></ul></div></div></div> <div class="search-box"><i class="iconfont reco-search"></i> <input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/" class="nav-link"><i class="iconfont undefined"></i>
回首页
</a></div> <!----></nav></div></header> <div class="sidebar-mask" data-v-dad8a512></div> <aside class="sidebar" data-v-dad8a512><div class="personal-info-wrapper" data-v-ca798c94 data-v-dad8a512><!----> <!----> <div class="num" data-v-ca798c94><div data-v-ca798c94><h3 data-v-ca798c94>0</h3> <h6 data-v-ca798c94>Article</h6></div> <div data-v-ca798c94><h3 data-v-ca798c94>0</h3> <h6 data-v-ca798c94>Tag</h6></div></div> <hr data-v-ca798c94></div> <nav class="nav-links"><div class="nav-item"><a href="/" class="nav-link"><i class="iconfont undefined"></i>
回首页
</a></div> <!----></nav> <ul class="sidebar-links"><li><section class="sidebar-group depth-0"><a href="/title-page" class="sidebar-heading clickable open"><span>Rust 程序设计语言</span> <!----></a> <ul class="sidebar-links sidebar-group-items"><li><a href="/foreword.html" class="sidebar-link">前言</a></li><li><a href="/ch00-00-introduction.html" class="sidebar-link">介绍</a></li><li><section class="sidebar-group is-sub-group depth-1"><a href="/ch01-00-getting-started.html" class="sidebar-heading clickable"><span>1. 入门指南</span> <!----></a> <ul class="sidebar-links sidebar-group-items"><li><a href="/ch01-01-installation.html" class="sidebar-link">1.1. 安装</a></li><li><a href="/ch01-02-hello-world.html" class="sidebar-link">1.2. Hello, World!</a></li><li><a href="/ch01-03-hello-cargo.html" class="sidebar-link">1.3. Hello, Cargo!</a></li></ul></section></li><li><a href="/ch02-00-guessing-game-tutorial.html" class="sidebar-link">2. 猜猜看游戏教程</a></li><li><section class="sidebar-group is-sub-group depth-1"><a href="/ch03-00-common-programming-concepts.html" class="sidebar-heading clickable"><span>3. 常见编程概念</span> <!----></a> <ul class="sidebar-links sidebar-group-items"><li><a href="/ch03-01-variables-and-mutability.html" class="sidebar-link">3.1. 变量与可变性</a></li><li><a href="/ch03-02-data-types.html" class="sidebar-link">3.2. 数据类型</a></li><li><a href="/ch03-03-how-functions-work.html" class="sidebar-link">3.3. 函数如何工作</a></li><li><a href="/ch03-04-comments.html" class="sidebar-link">3.4. 注释</a></li><li><a href="/ch03-05-control-flow.html" class="sidebar-link">3.5. 控制流</a></li></ul></section></li><li><section class="sidebar-group is-sub-group depth-1"><a href="/ch04-00-understanding-ownership.html" aria-current="page" class="sidebar-heading clickable router-link-exact-active router-link-active active"><span>4. 认识所有权</span> <!----></a> <ul class="sidebar-links sidebar-group-items"><li><a href="/ch04-01-what-is-ownership.html" class="sidebar-link">4.1. 什么是所有权?</a></li><li><a href="/ch04-02-references-and-borrowing.html" class="sidebar-link">4.2. 引用与借用</a></li><li><a href="/ch04-03-slices.html" class="sidebar-link">4.3. Slices</a></li></ul></section></li><li><section class="sidebar-group is-sub-group depth-1"><a href="/ch05-00-structs.html" class="sidebar-heading clickable"><span>5. 使用结构体来组织相关联的数据</span> <!----></a> <ul class="sidebar-links sidebar-group-items"><li><a href="/ch05-01-defining-structs.html" class="sidebar-link">5.1. 定义并实例化结构体</a></li><li><a href="/ch05-02-example-structs.html" class="sidebar-link">5.2. 一个使用结构体的示例程序</a></li><li><a href="/ch05-03-method-syntax.html" class="sidebar-link">5.3. 方法语法</a></li></ul></section></li><li><section class="sidebar-group is-sub-group depth-1"><a href="/ch06-00-enums.html" class="sidebar-heading clickable"><span>6. 枚举与模式匹配</span> <!----></a> <ul class="sidebar-links sidebar-group-items"><li><a href="/ch06-01-defining-an-enum.html" class="sidebar-link">6.1. 定义枚举</a></li><li><a href="/ch06-02-match.html" class="sidebar-link">6.2. match控制流运算符</a></li><li><a href="/ch06-03-if-let.html" class="sidebar-link">6.3. if let简洁控制流</a></li></ul></section></li><li><section class="sidebar-group is-sub-group depth-1"><a href="/ch07-00-managing-growing-projects-with-packages-crates-and-modules.html" class="sidebar-heading clickable"><span>7. 使用包、Crate 和模块管理不断增长的项目</span> <!----></a> <ul class="sidebar-links sidebar-group-items"><li><a href="/ch07-01-packages-and-crates.html" class="sidebar-link">7.1. 包和 crate</a></li><li><a href="/ch07-02-defining-modules-to-control-scope-and-privacy.html" class="sidebar-link">7.2. 定义模块来控制作用域与私有性</a></li><li><a href="/ch07-03-paths-for-referring-to-an-item-in-the-module-tree.html" class="sidebar-link">7.3. 路径用于引用模块树中的项</a></li><li><a href="/ch07-04-bringing-paths-into-scope-with-the-use-keyword.html" class="sidebar-link">7.4. 使用use关键字将名称引入作用域</a></li><li><a href="/ch07-05-separating-modules-into-different-files.html" class="sidebar-link">7.5. 将模块分割进不同文件</a></li></ul></section></li><li><section class="sidebar-group is-sub-group depth-1"><a href="/ch08-00-common-collections.html" class="sidebar-heading clickable"><span>8. 常见集合</span> <!----></a> <ul class="sidebar-links sidebar-group-items"><li><a href="/ch08-01-vectors.html" class="sidebar-link">8.1. vector</a></li><li><a href="/ch08-02-strings.html" class="sidebar-link">8.2. 字符串</a></li><li><a href="/ch08-03-hash-maps.html" class="sidebar-link">8.3. 哈希 map</a></li></ul></section></li><li><section class="sidebar-group is-sub-group depth-1"><a href="/ch09-00-error-handling.html" class="sidebar-heading clickable"><span>9. 错误处理</span> <!----></a> <ul class="sidebar-links sidebar-group-items"><li><a href="/ch09-01-unrecoverable-errors-with-panic.html" class="sidebar-link">9.1. panic!与不可恢复的错误</a></li><li><a href="/ch09-02-recoverable-errors-with-result.html" class="sidebar-link">9.2. Result与可恢复的错误</a></li><li><a href="/ch09-03-to-panic-or-not-to-panic.html" class="sidebar-link">9.3. panic!还是不panic!</a></li></ul></section></li><li><section class="sidebar-group is-sub-group depth-1"><a href="/ch10-00-generics.html" class="sidebar-heading clickable"><span>10. 泛型、trait 与生命周期</span> <!----></a> <ul class="sidebar-links sidebar-group-items"><li><a href="/ch10-01-syntax.html" class="sidebar-link">10.1. 泛型数据类型</a></li><li><a href="/ch10-02-traits.html" class="sidebar-link">10.2. trait:定义共享的行为</a></li><li><a href="/ch10-03-lifetime-syntax.html" class="sidebar-link">10.3. 生命周期与引用有效性</a></li></ul></section></li><li><section class="sidebar-group is-sub-group depth-1"><a href="/ch11-00-testing.html" class="sidebar-heading clickable"><span>11. 测试</span> <!----></a> <ul class="sidebar-links sidebar-group-items"><li><a href="/ch11-01-writing-tests.html" class="sidebar-link">11.1. 编写测试</a></li><li><a href="/ch11-02-running-tests.html" class="sidebar-link">11.2. 运行测试</a></li><li><a href="/ch11-03-test-organization.html" class="sidebar-link">11.3. 测试的组织结构</a></li></ul></section></li><li><section class="sidebar-group is-sub-group depth-1"><a href="/ch12-00-an-io-project.html" class="sidebar-heading clickable"><span>12. 一个 I/O 项目:构建命令行程序</span> <!----></a> <ul class="sidebar-links sidebar-group-items"><li><a href="/ch12-01-accepting-command-line-arguments.html" class="sidebar-link">12.1. 接受命令行参数</a></li><li><a href="/ch12-02-reading-a-file.html" class="sidebar-link">12.2. 读取文件</a></li><li><a href="/ch12-03-improving-error-handling-and-modularity.html" class="sidebar-link">12.3. 重构以改进模块化与错误处理</a></li><li><a href="/ch12-04-testing-the-librarys-functionality.html" class="sidebar-link">12.4. 采用测试驱动开发完善库的功能</a></li><li><a href="/ch12-05-working-with-environment-variables.html" class="sidebar-link">12.5. 处理环境变量</a></li><li><a href="/ch12-06-writing-to-stderr-instead-of-stdout.html" class="sidebar-link">12.6. 将错误信息输出到标准错误而不是标准输出</a></li></ul></section></li><li><section class="sidebar-group is-sub-group depth-1"><a href="/ch13-00-functional-features.html" class="sidebar-heading clickable"><span>13. Rust 中的函数式语言功能:迭代器与闭包</span> <!----></a> <ul class="sidebar-links sidebar-group-items"><li><a href="/ch13-01-closures.html" class="sidebar-link">13.1. 闭包:可以捕获其环境的匿名函数</a></li><li><a href="/ch13-02-iterators.html" class="sidebar-link">13.2. 使用迭代器处理元素序列</a></li><li><a href="/ch13-03-improving-our-io-project.html" class="sidebar-link">13.3. 改进之前的 I/O 项目</a></li><li><a href="/ch13-04-performance.html" class="sidebar-link">13.4. 性能比较:循环对迭代器</a></li></ul></section></li><li><section class="sidebar-group is-sub-group depth-1"><a href="/ch14-00-more-about-cargo.html" class="sidebar-heading clickable"><span>14. 更多关于 Cargo 和 Crates.io 的内容</span> <!----></a> <ul class="sidebar-links sidebar-group-items"><li><a href="/ch14-01-release-profiles.html" class="sidebar-link">14.1. 采用发布配置自定义构建</a></li><li><a href="/ch14-02-publishing-to-crates-io.html" class="sidebar-link">14.2. 将 crate 发布到 Crates.io</a></li><li><a href="/ch14-03-cargo-workspaces.html" class="sidebar-link">14.3. Cargo 工作空间</a></li><li><a href="/ch14-04-installing-binaries.html" class="sidebar-link">14.4. 使用cargo install从 Crates.io 安装二进制文件</a></li><li><a href="/ch14-05-extending-cargo.html" class="sidebar-link">14.5. Cargo 自定义扩展命令</a></li></ul></section></li><li><section class="sidebar-group is-sub-group depth-1"><a href="/ch15-00-smart-pointers.html" class="sidebar-heading clickable"><span>15. 智能指针</span> <!----></a> <ul class="sidebar-links sidebar-group-items"><li><a href="/ch15-01-box.html" class="sidebar-link">15.1. Box<T>指向堆上数据,并且可确定大小</a></li><li><a href="/ch15-02-deref.html" class="sidebar-link">15.2. 通过Dereftrait 将智能指针当作常规引用处理</a></li><li><a href="/ch15-03-drop.html" class="sidebar-link">15.3. DropTrait 运行清理代码</a></li><li><a href="/ch15-04-rc.html" class="sidebar-link">15.4. Rc<T>引用计数智能指针</a></li><li><a href="/ch15-05-interior-mutability.html" class="sidebar-link">15.5. RefCell<T>与内部可变性模式</a></li><li><a href="/ch15-06-reference-cycles.html" class="sidebar-link">15.6. 引用循环与内存泄漏是安全的</a></li></ul></section></li><li><section class="sidebar-group is-sub-group depth-1"><a href="/ch16-00-concurrency.html" class="sidebar-heading clickable"><span>16. 无畏并发</span> <!----></a> <ul class="sidebar-links sidebar-group-items"><li><a href="/ch16-01-threads.html" class="sidebar-link">16.1. 线程</a></li><li><a href="/ch16-02-message-passing.html" class="sidebar-link">16.2. 消息传递</a></li><li><a href="/ch16-03-shared-state.html" class="sidebar-link">16.3. 共享状态</a></li><li><a href="/ch16-04-extensible-concurrency-sync-and-send.html" class="sidebar-link">16.4. 可扩展的并发:Sync与Send</a></li></ul></section></li><li><section class="sidebar-group is-sub-group depth-1"><a href="/ch17-00-oop.html" class="sidebar-heading clickable"><span>17. Rust 的面向对象编程特性</span> <!----></a> <ul class="sidebar-links sidebar-group-items"><li><a href="/ch17-01-what-is-oo.html" class="sidebar-link">17.1. 面向对象语言的特点</a></li><li><a href="/ch17-02-trait-objects.html" class="sidebar-link">17.2. 为使用不同类型的值而设计的 trait 对象</a></li><li><a href="/ch17-03-oo-design-patterns.html" class="sidebar-link">17.3. 面向对象设计模式的实现</a></li></ul></section></li><li><section class="sidebar-group is-sub-group depth-1"><a href="/ch18-00-patterns.html" class="sidebar-heading clickable"><span>18. 模式用来匹配值的结构</span> <!----></a> <ul class="sidebar-links sidebar-group-items"><li><a href="/ch18-01-all-the-places-for-patterns.html" class="sidebar-link">18.1. 所有可能会用到模式的位置</a></li><li><a href="/ch18-02-refutability.html" class="sidebar-link">18.2. Refutability:何时模式可能会匹配失败</a></li><li><a href="/ch18-03-pattern-syntax.html" class="sidebar-link">18.3. 模式的全部语法</a></li></ul></section></li><li><section class="sidebar-group is-sub-group depth-1"><a href="/ch19-00-advanced-features.html" class="sidebar-heading clickable"><span>19. 高级特征</span> <!----></a> <ul class="sidebar-links sidebar-group-items"><li><a href="/ch19-01-unsafe-rust.html" class="sidebar-link">19.1. 不安全的 Rust</a></li><li><a href="/ch19-03-advanced-traits.html" class="sidebar-link">19.2. 高级 trait</a></li><li><a href="/ch19-04-advanced-types.html" class="sidebar-link">19.3. 高级类型</a></li><li><a href="/ch19-05-advanced-functions-and-closures.html" class="sidebar-link">19.4. 高级函数与闭包</a></li><li><a href="/ch19-06-macros.html" class="sidebar-link">19.5. 宏</a></li></ul></section></li><li><section class="sidebar-group is-sub-group depth-1"><a href="/ch20-00-final-project-a-web-server.html" class="sidebar-heading clickable"><span>20. 最后的项目: 构建多线程 web server</span> <!----></a> <ul class="sidebar-links sidebar-group-items"><li><a href="/ch20-01-single-threaded.html" class="sidebar-link">20.1. 单线程 web server</a></li><li><a href="/ch20-02-multithreaded.html" class="sidebar-link">20.2. 将单线程 server 变为多线程 server</a></li><li><a href="/ch20-03-graceful-shutdown-and-cleanup.html" class="sidebar-link">20.3. 优雅停机与清理</a></li></ul></section></li><li><section class="sidebar-group is-sub-group depth-1"><a href="/appendix-00.html" class="sidebar-heading clickable"><span>21. 附录</span> <!----></a> <ul class="sidebar-links sidebar-group-items"><li><a href="/appendix-01-keywords.html" class="sidebar-link">21.1. A - 关键字</a></li><li><a href="/appendix-02-operators.html" class="sidebar-link">21.2. B - 运算符与符号</a></li><li><a href="/appendix-03-derivable-traits.html" class="sidebar-link">21.3. C - 可派生的 trait</a></li><li><a href="/appendix-04-useful-development-tools.html" class="sidebar-link">21.4. D - 实用开发工具</a></li><li><a href="/appendix-05-editions.html" class="sidebar-link">21.5. E - 版本</a></li><li><a href="/appendix-06-translation.html" class="sidebar-link">21.6. F - 本书译本</a></li><li><a href="/appendix-07-nightly-rust.html" class="sidebar-link">21.7. G - Rust 是如何开发的与 “Nightly Rust”</a></li></ul></section></li></ul></section></li></ul> </aside> <div class="password-shadow password-wrapper-in" style="display:none;" data-v-64685f0e data-v-dad8a512><h3 class="title" style="display:none;" data-v-64685f0e data-v-64685f0e></h3> <!----> <label id="box" class="inputBox" style="display:none;" data-v-64685f0e data-v-64685f0e><input type="password" value="" data-v-64685f0e> <span data-v-64685f0e>Konck! Knock!</span> <button data-v-64685f0e>OK</button></label> <div class="footer" style="display:none;" data-v-64685f0e data-v-64685f0e><span data-v-64685f0e><i class="iconfont reco-theme" data-v-64685f0e></i> <a target="blank" href="https://vuepress-theme-reco.recoluan.com" data-v-64685f0e>vuePress-theme-reco</a></span> <span data-v-64685f0e><i class="iconfont reco-copyright" data-v-64685f0e></i> <a data-v-64685f0e><!---->
<!---->
2020
</a></span></div></div> <div data-v-dad8a512><main class="page" style="padding-right:0;"><div class="page-title" style="display:none;"><h1>认识所有权</h1> <div data-v-3b7f5bdf><!----> <!----> <!----> <!----></div></div> <div class="theme-reco-content content__default" style="display:none;"><h1 id="认识所有权"><a href="#认识所有权" class="header-anchor">#</a> 认识所有权</h1> <blockquote><p><a href="https://github.com/rust-lang/book/blob/master/src/ch04-00-understanding-ownership.md" target="_blank" rel="noopener noreferrer">ch04-00-understanding-ownership.md<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> <br>
commit 1fedfc4b96c2017f64ecfcf41a0a07e2e815f24f</p></blockquote> <p>所有权(系统)是 Rust 最为与众不同的特性,它让 Rust 无需垃圾回收(garbage collector)即可保障内存安全。因此,理解 Rust 中所有权如何工作是十分重要的。本章,我们将讲到所有权以及相关功能:借用、slice 以及 Rust 如何在内存中布局数据。</p></div> <footer class="page-edit" style="display:none;"><!----> <!----></footer> <!----> <!----> <!----></main> <!----></div></div></div></div><div class="global-ui"><div class="back-to-ceiling" style="right:1rem;bottom:6rem;width:2.5rem;height:2.5rem;border-radius:.25rem;line-height:2.5rem;display:none;" data-v-c6073ba8 data-v-c6073ba8><svg t="1574745035067" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5404" class="icon" data-v-c6073ba8><path d="M526.60727968 10.90185116a27.675 27.675 0 0 0-29.21455937 0c-131.36607665 82.28402758-218.69155461 228.01873535-218.69155402 394.07834331a462.20625001 462.20625001 0 0 0 5.36959153 69.94390903c1.00431239 6.55289093-0.34802892 13.13561351-3.76865779 18.80351572-32.63518765 54.11355614-51.75690182 118.55860487-51.7569018 187.94566865a371.06718723 371.06718723 0 0 0 11.50484808 91.98906777c6.53300375 25.50556257 41.68394495 28.14064038 52.69160883 4.22606766 17.37162448-37.73630017 42.14135425-72.50938081 72.80769204-103.21549295 2.18761121 3.04276886 4.15646224 6.24463696 6.40373557 9.22774369a1871.4375 1871.4375 0 0 0 140.04691725 5.34970492 1866.36093723 1866.36093723 0 0 0 140.04691723-5.34970492c2.24727335-2.98310674 4.21612437-6.18497483 6.3937923-9.2178004 30.66633723 30.70611158 55.4360664 65.4791928 72.80769147 103.21549355 11.00766384 23.91457269 46.15860503 21.27949489 52.69160879-4.22606768a371.15156223 371.15156223 0 0 0 11.514792-91.99901164c0-69.36717486-19.13165746-133.82216804-51.75690182-187.92578088-3.42062944-5.66790279-4.76302748-12.26056868-3.76865837-18.80351632a462.20625001 462.20625001 0 0 0 5.36959269-69.943909c-0.00994388-166.08943902-87.32547796-311.81420293-218.6915546-394.09823051zM605.93803103 357.87693858a93.93749974 93.93749974 0 1 1-187.89594924 6.1e-7 93.93749974 93.93749974 0 0 1 187.89594924-6.1e-7z" p-id="5405" data-v-c6073ba8></path><path d="M429.50777625 765.63860547C429.50777625 803.39355007 466.44236686 1000.39046097 512.00932183 1000.39046097c45.56695499 0 82.4922232-197.00623328 82.5015456-234.7518555 0-37.75494459-36.9345906-68.35043303-82.4922232-68.34111062-45.57627738-0.00932239-82.52019037 30.59548842-82.51086798 68.34111062z" p-id="5406" data-v-c6073ba8></path></svg></div></div></div>
<script src="/assets/js/app.e6b14c5e.js" defer></script><script src="/assets/js/3.ecc21787.js" defer></script><script src="/assets/js/1.032ec45e.js" defer></script><script src="/assets/js/33.e8747222.js" defer></script>
</body>
</html>