当前位置: 首页 > news >正文

肥西县城乡建设局网站苏州建设招投标网站

肥西县城乡建设局网站,苏州建设招投标网站,wordpress官方文档下载,网站自动更新什么是所有权 rust使用由编译器检查的一些规则构成的所有权系统来管理内存。且这不会影响程序的运行效率。 所有权规则 rust中每一个每一个值都有一个owner。在同一时刻#xff0c;只能有一个owner。当这个owner超过范围#xff0c;则该值会被丢弃。 String类型 为什么需…什么是所有权 rust使用由编译器检查的一些规则构成的所有权系统来管理内存。且这不会影响程序的运行效率。 所有权规则 rust中每一个每一个值都有一个owner。在同一时刻只能有一个owner。当这个owner超过范围则该值会被丢弃。 String类型 为什么需要String 已经有了字符串字面量了为啥还需要String类型呢字面量是硬编码在程序里面的如果我们在编码的时候并不知道字符串是什么那我们就不能用字符串字面量了。比如字符串来自用户输入这时候就需要用String类型来存储了。更多字符串基本用法参考【Rust】字符串String类型学习 内存及分配 简单的情况 在String::from的地方会申请内存在}之前rust会调用drop方法释放s的内存。 {let s String::from(hello); // s is valid from this point forward// do stuff with s } // this scope is now over, and s is no// longer valid字符串赋值的情况 当将s1赋值给s2的时候s1就会被废弃字符串的堆内存就交给s2去管理了。如果赋值后再使用s1就会出现编译错误。rust语言不会自动进行任何的拷贝所以可以认为自动拷贝都是高性能的。let s2 s1这个过程中相当于发生了move的动作将字符串的所有权从s1移交给s2。 let s1 String::from(hello);let s2 s1;字符串克隆的情况 既然直接赋值会导致所有权转移。那么如何做到赋值时进行拷贝呢这就需要用到clone方法。 let s1 String::from(hello); let s2 s1.clone(); println!(s1 {s1}, s2 {s2});因为clone方法会拷贝堆上的内存所以其执行的代价是比较高的。 只在栈上的数据拷贝 let x 5; let y x; println!(x {x}, y {y});我们发现如果直接把整数类型x赋值给y并且在使用x。编译并没有报错。这是因为整形是固定大小的类型存放在栈上。拷贝的代价很低其深拷贝和浅拷贝并没有特别大的区别。所以我们可以直接拷贝而不需要move。 所有权和函数 按照我们所有权的规则如下代码就很容易理解。 fn main() {let s String::from(hello); // s comes into scopetakes_ownership(s); // ss value moves into the function...// ... and so is no longer valid herelet x 5; // x comes into scopemakes_copy(x); // x would move into the function,// but i32 is Copy, so its okay to still// use x afterward} // Here, x goes out of scope, then s. But because ss value was moved, nothing// special happens.fn takes_ownership(some_string: String) { // some_string comes into scopeprintln!({some_string}); } // Here, some_string goes out of scope and drop is called. The backing// memory is freed.fn makes_copy(some_integer: i32) { // some_integer comes into scopeprintln!({some_integer}); } // Here, some_integer goes out of scope. Nothing special happens.返回值和有效范围 fn main() {let s1 gives_ownership(); // gives_ownership moves its return// value into s1let s2 String::from(hello); // s2 comes into scopelet s3 takes_and_gives_back(s2); // s2 is moved into// takes_and_gives_back, which also// moves its return value into s3 } // Here, s3 goes out of scope and is dropped. s2 was moved, so nothing// happens. s1 goes out of scope and is dropped.fn gives_ownership() - String { // gives_ownership will move its// return value into the function// that calls itlet some_string String::from(yours); // some_string comes into scopesome_string // some_string is returned and// moves out to the calling// function }// This function takes a String and returns one fn takes_and_gives_back(a_string: String) - String { // a_string comes into// scopea_string // a_string is returned and moves out to the calling function }
http://www.w-s-a.com/news/393487/

相关文章:

  • windos 下做网站工具网站右侧返回顶部
  • 点餐网站怎么做济源网站建设济源
  • 嘉兴公司网站制作文明网站的建设与管理几点思考
  • 扬州公司做网站徐州网站建设优化
  • 手机网站弹出层插件有哪些wordpress 文章标签
  • 网站建设详细合同范本长沙注册公司流程与费用
  • 搜索引擎网站录入wordpress怎么修改导航
  • 业务接单网站重庆网站制
  • 绿色农产品网站景区网站建设策划方案
  • 服务器做ssr后还可以做网站吗品牌形象设计公司
  • 太原网站制作计划wordpress创建文章
  • 网站优化要怎么做seo网站关键词优化报价
  • 公司网站友情链接怎么做副链华为荣耀手机官网
  • 一条龙做网站旅游网页设计模板图凡科
  • 中山网站建设哪家便宜在中国做外国网站怎么收钱
  • 网站优化大计孝感注册公司
  • 设计接单app平台有哪些在线网站seo诊断
  • 兰州网站建设推广现代营销手段有哪些
  • 郴州网站seo优化网络安全哪个培训班比较好
  • 做网站需要记哪些代码企业网站建设思路
  • 重庆自助建站模板网络服务器配置与管理
  • 外贸网站怎样做小程序买量平台
  • 中山精品网站建设机构海外留学网站建设方案
  • 长春网站建设工作如何取消wordpress页脚
  • 忻府网站建设排名网络管理系统官网
  • 张家港外贸网站建设国医堂网站平台建设
  • 水冶那里有做网站的对于网站链接优化有哪些建议
  • 宝安中心地铁站是几号线化妆品网站做的好的
  • 海宁营销型网站设计企业融资是什么意思
  • 淘宝客做网站要钱吗网站开发试题库