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

小规模公司自学做账电商网站seo公司

小规模公司自学做账,电商网站seo公司,网站在线支付接口,石家庄软件外包引用与借用 上一篇中,我们介绍了rust的所有权概念,若直接传递变量做函数参数,堆上的变量就会失去所有权,而栈上变量则由于复制,仍有所有权。 fn main(){let b 3;makes_copy(b);println!("after using a variab…

引用与借用

上一篇中,我们介绍了rust的所有权概念,若直接传递变量做函数参数,堆上的变量就会失去所有权,而栈上变量则由于复制,仍有所有权。

fn main(){let b = 3;makes_copy(b);println!("after using a variable in stack {}", b);let a = String::from("hello");take_ownership(a);// a 已被moveprintln!("after using a variable in heap {}", a);
}
fn take_ownership(a:String){println!("{}",a);
}
fn makes_copy(a:i32){println!("{}",a);
}

Rust对引用的定义,即指针,实现类似于C中的取地址&,

let x = 3;
// y即x的引用
let y = &x;
// 必须解引用,否则类型不一致
assert_eq!(3,*y);

用引用类型参数代替上一篇的原参数,且默认是不可变的,
若要修改引用,则要加上可变声明,注意看变量声明、函数声明、函数调用入参形式

fn main(){let mut a = String::from("Hello");cal_len(&mut a);println!("{}",a);
}
fn cal_len(a:& mut String) -> (){a.push_str(", world!");
}

可变引用同时只能有一个
这是为了避免数据竞争,在C++多线程程序中,使用互斥锁避免争抢操作同一块内存,而Rust直接限制数据竞争。

let mut s = String::from("hello");let r1 = &mut s;
let r2 = &mut s;
// r1结束前,声明可变引用r2导致重复可变应用,编译报错
println!("{}, {}", r1, r2);

引用作用域的结束位置是该变量最后一次使用的位置

Rust避免了悬垂引用,即避免出现指针原指向的对象已被清除,但指针仍存在的风险。

fn main() {let reference_to_nothing = dangle();
}
// 如下函数错误,因为a已经被清除
fn dangle() -> &String {let a = String::from("hello");&a
}

总结,
同一时刻,你只能拥有要么一个可变引用, 要么任意多个不可变引用。
引用必须总是有效的。
如下来自 AI助手,

  1. 静态类型:Rust是一种静态类型语言,变量在声明时必须指定其类型,并且一旦指定,类型不能更改。

  2. 强类型:Rust是一种强类型语言,变量不能隐式地转换为其他类型,必须使用类型转换来显式地进行转换。

  3. 不可变性:Rust默认情况下变量是不可变的,即不能修改其值。如果需要修改变量的值,需要使用 mut 关键字来声明可变变量。

  4. 所有权:Rust中的变量具有所有权,每个值都有一个唯一的拥有者。当拥有者超出作用域时,值将被销毁。

  5. 解引用和引用:Rust中可以使用 & 符号来引用变量,以便在不拥有所有权的情况下访问其值。通过解引用操作符 *,可以使用引用来访问变量的值。

  6. 可变性引用:在Rust中,可以通过借用变量来让其它代码可以读取和修改该变量的值,但是只能在特定范围内进行,并在借用结束后返回变量的所有权。

  7. 生命周期:Rust中的变量有一个生命周期,用于限定变量的有效范围。当变量超出其生命周期时,它将被销毁。

http://www.yayakq.cn/news/468552/

相关文章:

  • 社交网站开发个人网站首页设计优秀作品
  • 公司两个网站如何都备案如何寻找外贸公司订单
  • 做名片最好的网站wordpress的标题
  • 负责网站的建设规划原型图怎么做网站交互
  • 宽屏网站和普通网站wordpress get_term_link
  • 吴川手机网站建设公司进口彩妆做的好的网站
  • 服务器关闭 网站被k博客网站怎么建设
  • sql2005做网站做网站需要哪些东西和步骤
  • 怎样在织梦网站建设目录销量不高的网站怎么做
  • 网站建设 业务网站地图页面模板
  • 成都如何寻找做网站的全国妇联官方网站儿童之家建设
  • 企业网站优化托管保定网站建设
  • 如何利用国外分类网站开发客户域名做网站
  • 建设通相似网站常德网站建设全域云
  • 中山精品网站建设精英企业管理系统网站
  • 关于建设二级网站的报告湖南搜索引擎推广服务
  • 阿里云服务器做盗版视频网站佛山网站制作维护
  • 淄博手机网站建设怎么做一个个人网站
  • 如何做网站国际化设计网站 常用
  • 营销网站建设的步骤过程免费源码交易网站源码
  • 建设asp网站视频教程微网站功能
  • 网站制作的iis .net 网站架设
  • 南宁网站建站推广大通县wap网站建设公司
  • 淮安网站建设制作合肥政务区建站公司
  • 58网站为啥做不好wordpress音频付费插件
  • 泰安集团网站建设价格网站开发的最后5个阶段
  • 公司开发网站建设价格网站制作涉及哪些方面
  • 桂林网站开发公司雷神代刷网站推广快速
  • 信誉好的苏州网站建设钟祥网站制作
  • 如何免费搭建网站响应云网站模板下载