ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【Rust】所有权、引用、借用

2022-01-08 21:03:39  阅读:147  来源: 互联网

标签:String s2 s1 let 借用 所有权 Rust


所有权

所有权的规则
Rust 中的每一个值都有一个被称为其 所有者(owner)的变量。
值在任一时刻有且只有一个所有者。
当所有者(变量)离开作用域,这个值将被丢弃。

Rust 采取了一个不同的策略:内存在拥有它的变量离开作用域后就被自动释放

变量与数据交互

方式(一):移动

let s1 = String::from("hello");
let s2 = s1;
// s1 不能再用

方式(二):克隆

let s1 = String::from("hello");
let s2 = s1.clone();
// s1,s2都可用

栈上的数据:复制
实现了Copy trait 整数、布尔、浮点、字符、元组

向函数传递值可能会移动或复制,移动时所有权会转移,复制不会转移
返回值也可以转移所有权

let mut s1 = String::from("hello");
s1 = take(s1);// 转移所有权到函数
println!("{}",s1);

fn take(s: String) -> String {
    s// 返回所有权
}

 

标签:String,s2,s1,let,借用,所有权,Rust
来源: https://www.cnblogs.com/yangchongxing/p/15779569.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有